Cog*_*Sum 3 ruby-on-rails sidekiq
我们正在使用 Sidekiq 和 Rails 5 推出一款新应用程序。我们正在利用 Redis 来存储作业,但由于某种原因,本地和我们的开发区中的作业似乎都没有传递到 Redis。
当代码自行执行以及通过 IRB 执行时,通知似乎已正确发送。
[10] pry(main)> Notifications::WelcomeWorker.perform_async(1)
=> "1a1447c488f173fb09b212f7"
Run Code Online (Sandbox Code Playgroud)
查看 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
经过额外的 Google-fu 我发现问题已经报告了
Sidekiq 工作人员没有被触发-如果您来这里是为了同样的问题,请投票赞成这个问题并回答。他们更应得的!
TL:DR - rspec-sidekiq gem 应该仅在测试中。显然这与发展有关。
现在我要把头撞到墙上,想知道为什么我的谷歌搜索连续两天都失败了。
| 归档时间: |
|
| 查看次数: |
2669 次 |
| 最近记录: |