我在同一台服务器上运行我的生产和暂存环境。我正在尝试根据正在运行的环境设置命名空间。例如,我不希望我的生产环境处理暂存环境排队的电子邮件,反之亦然。 我在我的本地环境中使用相同的代码。
代码如下:
# config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
config.redis = { url: 'redis://localhost:6379/0', namespace: "sidekiq_app_name_#{Rails.env}" }
end
Sidekiq.configure_client do |config|
config.redis = { url: 'redis://localhost:6379/0', namespace: "sidekiq_app_name_#{Rails.env}" }
end
每当我使用此代码时,电子邮件都会被发送到默认队列,但它们不会被处理。如果我删除“命名空间”部分,一切都会恢复正常。 到目前为止,这刚刚在本地进行了测试。
有什么想法我可能在这里遗漏了什么吗?
我正在运行 sidekiq v3.3.0 以及 capistrano-sidekiq 0.4.0 进行部署。
最佳答案
我自己设法解决了这个问题。问题是我以某种方式设法在 config.ru
中添加了以下代码:
require 'sidekiq'
Sidekiq.configure_client do |config|
config.redis = { :size => 1 }
end
删除后,一切正常!
关于ruby-on-rails - 为什么使用 Sidekiq 的 redis 命名空间不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27672310/