【问题标题】:Sidekiq not picking up job from Rails appSidekiq 没有从 Rails 应用程序中找到工作
【发布时间】:2017-05-20 09:37:12
【问题描述】:

我们正在使用 Sidekiq 和 Rails 5 推出一个新应用。我们正在利用 Redis 存储作业,但由于某种原因,无论是在本地还是在我们的开发区,这些作业似乎都没有传递到 Redis。

当代码自行执行以及通过 IRB 执行时,通知似乎已正确发送。

[10] pry(main)> Notifications::WelcomeWorker.perform_async(1)
=> "1a1447c488f173fb09b212f7"

查看 Redis,我们有失败和已处理的密钥(都说 0),但没有任何待处理的密钥,这让我相信它甚至由于某种原因没有命中 Redis。

我们的 Redis 配置设置在 config/sidekiq.yml 中,它只是设置并发和 PID 位置。

我们在 initializers/sidekiq.rb 中也有一个初始化文件

Sidekiq.configure_server do |config|
  config.redis = { url: ENV["SIDEKIQ_REDIS"] , namespace: 'abcbh', network_timeout: 5  }
end
Sidekiq.configure_client do |config|
  config.redis = { url: ENV["SIDEKIQ_REDIS"] , namespace: 'abcbh', network_timeout: 5  }
end

SIDEKIQ_REDIS 在本地翻译为 redis://localhost 和 dev 上的相关 URL。

一切似乎都运行良好,但作业似乎没有出现在 Redis 中。

我在睡眠剥夺中缺少什么吗?

worker 本身在 app/workers/notifications/welcome_worker.rb 中设置

在 app/workers/notifications/welcome_worker.rb 我们有以下代码,尽管它永远不会被执行。

require 'sendgrid-ruby'
include SendGrid
class Notifications::WelcomeWorker
  include Sidekiq::Worker

  sidekiq_retries_exhausted do |msg, e|
    Sidekiq.logger.warn "Failed #{msg['class']} with #{msg['args']}: #{msg['error_message']}"
  end

  def perform(email_id)
    Sidekiq.logger.info "Beginning Welcome Email For #{email_id}"
    ...
  end
end

【问题讨论】:

  • 你在环境中启动sidekiq了吗?
  • 是的。在我的本地打开两个终端窗口,一个为我的 IRB 运行 bin/rails -c,另一个运行 bundle exec sidekiq -c config/sidekiq.yml
  • 您是否指定了RAILS_ENV?我曾经遇到过类似的问题,但只是过度阅读,sidekiq 将无法在development 环境中运行(几个版本前 - 不知道这是否是默认行为)。您查看sidekiq.log 是否有任何错误?其他问题可能是日志级别...根据您的配置显示的级别太低。
  • 赞成这个,因为它与问题有关。我的回答澄清了这一点,但它不能在开发中运行的原因是因为 rspec-sidekiq。不过,我仍在尝试理解其中的原因。它似乎根本没有很好的记录。

标签: ruby-on-rails sidekiq


【解决方案1】:

在附加 Google-fu 后,我发现该问题已报告

Sidekiq worker not getting triggered - 如果您来这里是为了同样的问题,请投票赞成这个问题并回答。他们应得的更多!

TL:DR - rspec-sidekiq gem 应该只在测试中。显然这与发展有关。

我现在将头撞到墙上,想知道为什么我的 google-fu 连续两天让我失败。

【讨论】:

  • 听起来像我曾经遇到的问题。但我不记得解决方案!你不是唯一一个被这个愚弄的人:)
猜你喜欢
  • 2014-10-25
  • 2014-07-16
  • 1970-01-01
  • 2019-08-10
  • 1970-01-01
  • 2019-01-24
  • 2018-01-18
  • 2014-07-31
  • 2018-08-29
相关资源
最近更新 更多