为什么redis命名空间与Sidekiq无法正常工作?

时间:2014-12-27 23:09:03

标签: ruby-on-rails ruby namespaces redis sidekiq

我在同一台服务器上运行我的生产和暂存环境。我正在尝试根据正在运行的环境设置名称空间。例如,我不希望我的生产环境处理由登台环境排队的电子邮件,反之亦然。 我在本地环境中使用相同的代码。

以下是代码:

# 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进行部署。

1 个答案:

答案 0 :(得分:0)

我设法自己解决了这个问题。问题是我以某种方式设法在config.ru

中添加以下代码
require 'sidekiq'

Sidekiq.configure_client do |config|
  config.redis = { :size => 1 }
end

一旦删除,一切正常!