ruby-on-rails - 为什么使用 Sidekiq 的 redis 命名空间不起作用?

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

最佳答案

我自己设法解决了这个问题。问题是我以某种方式设法在 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/

相关文章:

ruby-on-rails - NET::HTTP 调用在 rails 环境中时从 ssl 失败

ruby-on-rails - 错误 : Unknown provider: aProvider <- a

ruby - 安装 Homebrew Portable Ruby 失败(你的系统版本太旧)

Ruby:如何将潜在的 unicode 字符串分解为字节

java - 使用 dom4j 清理命名空间处理

ruby-on-rails - 设计 gem 跳过确认和同时通过电子邮件跳过确认

ruby-on-rails - 在 ElastiCache 上保存 Ruby on Rails session

mysql - 更新 rake 进度(如果可能,使用 AJAX)

jquery - 如何用这个调用调用者命名空间的函数?

php - 如何在 Yii 和 HAML 中 `use` 命名空间?