我正在使用Sidekiq
将后台作业处理到我们的一个中
Rails项目。我们希望使用位于不同位置的其他Redis服务器与其他后台处理作业分离ReportDB
。
根据Sidekiq配置维基,我们可以像
一样配置配置/初始化/ sidekiq.rb
Sidekiq.configure_server do |config|
config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' }
end
Sidekiq.configure_client do |config|
config.redis = { :url => 'redis://redis.example.com:7372/12', :namespace => 'mynamespace' }
end
但是如何初始化与多个redis服务器的连接?
答案 0 :(得分:4)
Sidekiq 2不支持多个Redis服务器,升级到今天发布的sidekiq 3,并添加了您需要的新客户端分片功能。
客户端分片
Sidekiq 2.x具有可扩展性限制:一台Redis服务器。在实践中 对于大多数人来说,限制在良好的硬件上大于每秒5000个作业 这不是什么大问题,但Sidekiq的一些用户更加强烈 达到这个极限。更新(Sidekiq 3)Sidekiq :: Client API允许 您要指定要使用的Redis连接池,而不是假设 之前的Sidekiq.redis全局池,允许您进行定位 不同类型的作业到不同的Redis服务器。现在你可以扩展 Sidekiq到无限和超越!
API几乎完全向后兼容:唯一的破坏 改变是在客户端中间件。有关详情,请参阅upgrade notes 细节。
===
的答案