ruby-on-rails - 使用本地 redis 但不使用远程的 Sidekiq 处理

标签 ruby-on-rails redis sidekiq whenever

我有一个 RoR 应用,其后台作业使用 wheneversidekiq gem。

在开发环境中,当我使用本地 redis 实例(在本地主机上)启动 sidekiq 时,作业一直在毫无问题地执行。但是当我切换到远程 redis 实例(Heroku 附加组件)并重新启动 sidekiq 时,它说它开始处理,但没有任何反应,工作人员也没有做任何工作。

这是我的 config/schedule.rb(用于 whenever gem)

every 2.minutes do
  rake "crawler:crawl"
end

这是我的初始化程序/redis.rb:

Sidekiq.configure_server do |config|
  config.redis = { :url => 'redis://user:pass@spinyfin.redistogo.com:9098/' }
end

Sidekiq.configure_client do |config|
  config.redis = { :url => 'redis://user:pass@spinyfin.redistogo.com:9098/' }
end

如果我注释掉redis.rb中的内容并运行一个本地redis实例,作业就可以正常处理了。但是当我使用这个远程 redis 实例时,它出现了,然后没有任何处理:

2013-11-29T15:09:26Z 95156 TID-ov6y7e14o INFO: Booting Sidekiq 2.13.0 using redis://redistogo:user@spinyfin.redistogo.com:9098/ with options {}
2013-11-29T15:09:26Z 95156 INFO: Running in ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]
2013-11-29T15:09:26Z 95156 INFO: See LICENSE and the LGPL-3.0 for licensing details.
2013-11-29T15:09:26Z 95156 INFO: Starting processing, hit Ctrl-C to stop

最佳答案

也许您连接到错误的 redis 数据库或根本没有连接。 在我的应用程序中,我使用没有尾部斜杠的 redis url。在你的情况下:

这是针对数据库“0”

redis://user:pass@spinyfin.redistogo.com:9098

这是数据库“1”

redis://user:pass@spinyfin.redistogo.com:9098/1

关于ruby-on-rails - 使用本地 redis 但不使用远程的 Sidekiq 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288961/

相关文章:

ruby-on-rails - 如何在 Sidekiq 中为 CPU/RAM 昂贵的作业确定并发数?

jobs - Sidekiq停止一项正在运行的作业

ruby-on-rails - Sidekiq Twilio Redis 'undefined method ` strip' for nil :NilClass'

ruby-on-rails - Activeadmin 资源名称

html - 行高不影响我的应用程序中的任何内容

javascript - rails 5 : update action not working for AJAXified form

c# - 从所有 redis 数据库中获取所有键和值?

ruby-on-rails - Rails 如何计算3个日期之间的整数时差

redis - Redis 如何跟踪每个客户端?

传统 "select * from where and "类型查询的Redis存储设计