[英]Sidekiq not picking up job from Rails app
我们正在推出带有 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 中。
在我的睡眠剥夺中我缺少什么吗?
工人本身在 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
在额外的 Google-fu 之后,我发现问题已经报告了
Sidekiq 工作人员没有被触发-如果您来这里是为了相同的问题,请对此问题进行投票并回答。 他们更值得拥有!
TL:DR - rspec-sidekiq gem 应该只在测试中。 显然,这与发展有关。
我现在将头撞在墙上,想知道为什么我的 google-fu 连续两天都失败了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.