2012-09-20 116 views
1

我开始与工人:Resque worker可以在没有运行redis副本的情况下运行吗?

rake environment resque:work RAILS_ENV=development VVERBOSE=1 QUEUE=* LOGFILE=/Users/matteo/workspace/APP/log/resque.log --trace 

我得到的输出:

** Invoke environment (first_time) 
** Execute environment 
** Invoke resque:work (first_time) 
** Invoke resque:preload (first_time) 
** Invoke resque:setup (first_time) 
** Execute resque:setup 
** Execute resque:preload 
** Invoke resque:setup 
** Execute resque:work 

快速PS告诉我,这个过程是启动和运行。

现在我没有运行Redis的实例。快速ps auxwwww | grep redis-server证实了这一点。

工人不应该失败吗?

我下载了resque代码,把一个断点到resque代码worker.rb:

(rdb:1) eval redis 
#<Redis::Namespace:0x007f868cb57880 @namespace=:resque, @redis=#<Redis client v2.2.2 connected to redis://127.0.0.1:6379/1 (Redis v0.07)>> 

这怎么可能什么都不是,端口上运行? 感谢您的任何帮助

回答

2

的答案是:“不,工人不能没有运行Redis的副本运行”。

问题是由fakeredis宝石造成的。尽管开发环境中没有包含gem,但开发人员因此需要“redis/connction/memory”来使用fakeredis实例。

1

Resque define需要redis的工作,虽然它可能会显示您的队列已启动,它将无法处理没有redis。

可以通过引导你的服务器后,将这个网址查看队列的状态...

也就是说,如果你在你的Gemfile以下

gem 'resque', :require => "resque/server" 

OR如果您没有该设置,请在控制台resque-web中运行以获取可访问的管理界面:localhost:3000/overview

如果您未获得一个错误,并且可以在没有redis错误的情况下访问该页面,redis必须在某处运行,或许作为启动时的服务?

对于基本的Redis/resque设置在这里看到的 - http://railscasts.com/episodes/271-resque?view=asciicast

相关问题