首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用本地redis处理Sidekiq,但不使用远程处理

使用本地redis处理Sidekiq,但不使用远程处理
EN

Stack Overflow用户
提问于 2013-11-29 15:25:37
回答 2查看 1.7K关注 0票数 6

我有一个RoR应用程序,后台作业使用的时候和侧面的宝石。

在开发环境中,当我使用本地redis实例(在localhost上)启动sidekiq时,作业一直没有问题地被执行。但是当我切换到远程redis实例(Heroku外接程序)并重新启动sidekiq时,它说它开始处理,但是什么都没有发生,工人也没有做任何工作。

这是我的config/schedule.rb (用于任何时候的gem)

代码语言:javascript
复制
every 2.minutes do
  rake "crawler:crawl"
end

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

代码语言:javascript
复制
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实例时,它会出现,然后什么都不会被处理:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2014-01-15 21:43:41

也许你连接到错误的红宝石数据库,或者根本没有连接。在我的应用程序中,我使用的是redis url,没有后面的斜杠。就你而言:

这是用于数据库"0“的

代码语言:javascript
复制
redis://user:pass@spinyfin.redistogo.com:9098

这个用于数据库"1“

代码语言:javascript
复制
redis://user:pass@spinyfin.redistogo.com:9098/1
票数 1
EN

Stack Overflow用户

发布于 2014-06-20 14:47:45

我使用环境变量REDIS_URL来确保所有东西都使用相同的Redis。

Re: Heroku --当我寻找自己的解决方案时,我刚刚读到了这个这里

如果在Heroku上运行,则不能依赖config/database.yml,因为该平台依赖于DATABASE_URL环境变量来确定数据库连接配置。Heroku在段塞编译期间覆盖database.yml,以便从DATABASE_URL读取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20288961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档