使用多个 sidekiq 数据库

Using multiple sidekiq databases

嘿,我正在尝试生成一个连接到完全独立的 Redis 数据库的 sidekiq worker。我知道使用 3.0 的连接池这是可能的,而且我已经能够成功地将作业推送到正确的 Redis 数据库上,但问题是 Sidekiq web UI 没有在队列中显示这些作业(我为此安装了一个单独的 Rack 应用程序,专门指向另一个 Redis 数据库)。管理界面中的 "Busy" 选项卡还显示了我指向此数据库的 sidekiq 工作人员,以及正确的 PID。

这是我的 sidekiq.rb:

Sidekiq.configure_server do |config|
  if ENV['REDIS_DB'] == "2"
    config.redis = { :url => "redis://#{SIDEKIQ_HOST}:6379/2", :namespace => 'drip' }
  else
    config.redis = { :url => "redis://#{SIDEKIQ_HOST}:6379", :namespace => 'drip' }
  end
end

Sidekiq.configure_client do |config|
  if ENV['REDIS_DB'] == "2"
    config.redis = { :url => "redis://#{SIDEKIQ_HOST}:6379/2", :namespace => 'drip' }
  else
    config.redis = { :url => "redis://#{SIDEKIQ_HOST}:6379", :namespace => 'drip' }
  end
end

我的用例是我需要对进入第二个数据库的作业进行精细控制,因此我需要精确配置工作人员,以便他们只使用我需要的资源。我只希望以这种方式配置的工人接这些工作。

WebUI无法在单个进程中多次挂载指向多个Redise。您还必须 运行 多个 Web 进程并设置 REDIS_DB