我Sidekiq用来将后台作业处理到我们的Rails项目之一中。我们要使用位于不同位置的其他Redis服务器来ReportDB与其他后台处理作业分开。
Sidekiq
ReportDB
根据Sidekiq配置wiki,我们可以像
config / initializers / 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服务器的连接?
Sidekiq 2不支持多个Redis服务器,请升级到仅在今天发布的sidekiq 3,并添加所需的新客户端分片功能。
来自:Sidekiq 3发行说明
客户分片 Sidekiq 2.x具有可扩展性限制:一台Redis服务器。实际上,在良好的硬件上,该限制大于每秒5000个作业,因此在大多数情况下这并不算什么大问题,但是一些更激烈的Sidekiq用户正在达到该限制。更新的(Sidekiq 3)Sidekiq :: Client API使您可以指定要使用的Redis连接池,而不是以前假设Sidekiq.redis全局池,从而可以将不同类型的作业定位到不同的Redis服务器。现在,您可以将Sidekiq扩展到无穷远! 该API几乎完全向后兼容: 唯一的重大变化是在客户端中间件中 。有关更多详细信息,请参阅升级说明。
客户分片
Sidekiq 2.x具有可扩展性限制:一台Redis服务器。实际上,在良好的硬件上,该限制大于每秒5000个作业,因此在大多数情况下这并不算什么大问题,但是一些更激烈的Sidekiq用户正在达到该限制。更新的(Sidekiq 3)Sidekiq :: Client API使您可以指定要使用的Redis连接池,而不是以前假设Sidekiq.redis全局池,从而可以将不同类型的作业定位到不同的Redis服务器。现在,您可以将Sidekiq扩展到无穷远!
该API几乎完全向后兼容: 唯一的重大变化是在客户端中间件中 。有关更多详细信息,请参阅升级说明。
===