我用以下命令启动一个工人:
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代码,并在worker.rb中的resque代码中添加了断点:
(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)>>怎么会没有任何东西在该端口上运行?谢谢你的帮助
发布于 2012-09-28 06:07:44
答案是:“不,工作人员不能在没有Redis副本的情况下运行”。
这个问题是由伪造的宝石引起的。尽管gem没有包含在开发环境中,但开发人员需要"redis/connction/memory“,因此使用了fakeredis实例。
发布于 2012-09-28 05:07:39
Resque确实需要redis才能工作,尽管看起来你的队列已经满了,但如果没有redis,它将无法处理。
您可以在启动服务器后转到此url来查看队列的状态...
http://localhost:3000/resque/overview这是如果您的gemfile中包含以下内容的话
gem 'resque', :require => "resque/server"或者,如果您没有该设置,请在控制台resque-web中运行此命令以获得可通过localhost:3000/overview访问的管理界面
如果您没有收到错误,并且可以访问该页面而不出现redis错误,那么redis一定在某个地方运行,也许是作为启动时的一个服务?
有关基本的redis/resque设置,请参阅此处- http://railscasts.com/episodes/271-resque?view=asciicast
https://stackoverflow.com/questions/12505955
复制相似问题