【问题标题】:Two Redis servers for same rails app两个 Redis 服务器用于相同的 rails 应用程序
【发布时间】:2015-03-11 18:05:09
【问题描述】:
我的 rails 应用程序有很多不同类型的作业,我目前通过 resque 提交给 redis。为了更好地管理它,我正在考虑运行两个 redis 服务器并将一类作业提交给 server1,而将另一类作业提交给 server2。谁能建议如何在 Rails 中使用 resque 将 Type1 的作业提交给 Redis1 而 Type2 的作业提交给 Redis2 ?
【问题讨论】:
标签:
ruby-on-rails
ruby
redis
resque
【解决方案1】:
当然你可以通过在打开连接时使用不同的redis url来为不同的作业使用不同的redis db文件,像这样:
Resque.redis = Redis.connect(url:'redis://localhost:6379/1') #connect to db1
Resque.redis = Redis.connect(url:'redis://localhost:6379/2') #connect to db2
但我认为在这种情况下这不是一个好习惯。您应该考虑Sidekiq 并设置不同的队列来处理不同类型的作业。您可以查看sidekiq's options 了解如何设置不同的队列名称。然后,您可以使用 sidekiq 的 Web 界面轻松跟踪这些作业。