Rails4:为啥 resque 工人不找工作

Posted

技术标签:

【中文标题】Rails4:为啥 resque 工人不找工作【英文标题】:Rails4: Why resque worker is not picking up jobsRails4:为什么 resque 工人不找工作 【发布时间】:2014-01-22 02:37:34 【问题描述】:

我在我的 rails 4 应用程序中使用 resque 和 resque_scheduler。我的应用程序正在为 resque 提供一些工作,但它们并没有被工人处理。 reque-web 没有显示失败。

我已经通过运行启动 resque worker

QUEUE=kqueue rake environment resque:work

我的 Rails 控制台

2.0.0p353 :006 > Resque.info

 => :pending=>0, :processed=>0, :queues=>0, :workers=>1, :working=>0, :failed=>0, :servers=>["redis://localhost:6379/0"], :environment=>"development" 

2.0.0p353 :007 > Resque.redis

 => #<Redis::Namespace:0x007fbb0fbf3e58 @namespace=:resque, @redis=#<Redis client v3.0.6 for redis://localhost:6379/0>, @warning=false> 

2.0.0p353 :008 > Resque.workers

 => [#<Worker xxx-macbook.local:16869:kqueue>] 

在 redis 上,

redis 127.0.0.1:6379> keys *
1) "resque:workers"
2) "resque:delayed_queue_schedule"
3) "resque:worker:xxx-macbook.local:16869:kqueue:started"
4) "resque:timestamps:\"class\":\"InvokeScheduler\",\"args\":[\"target\":\"/sendmail\",\"http_method\":\"post\",\"type\":\"signup_verification\",\"user_id\":31],\"queue\":\"kqueue\""
5) "resque:delayed:1388832771"

resque-web 说:

0 of 1 Workers Working

Failed Jobs
Showing 0 to 0 of 0 jobs


Worker xxx-macbook.local:16869:kqueue

Host    Pid   Started Queues  Processed Failed  Processing
xxx-macbook.local 16869 15 minutes ago  KQUEUE  0 0 Waiting for a job...

【问题讨论】:

似乎没有该工人可以从事的工作。你确定你的工作排队正确吗?你如何排队?您是否在 application.rb 中将 rails 队列设置为 resque? @DominikGoltermann 你可以看到redis显示作业在我上面的详细信息中排队。那你怎么看不排队呢? @DominikGoltermann “您是否在 application.rb 中将 rails 队列设置为 resque?”是什么意思? 您能否向我们提供您的环境(Heroku 等)的详细信息? @JVK 它显示了 0 个待处理的作业,尽管 redis 键可能表明存在一个设置为在特定时间运行的排队作业(2014 年 1 月 4 日星期六 10:52:51 GMT) (不确定 resque 如何插入键)。关于 application.rb 我是 Rails.queue 的事情。不知道你是否正在使用它。 【参考方案1】:

我遇到了同样的问题,然后:

使用终端,转到您的项目目录 在终端输入:QUEUE=* rake resque:work

【讨论】:

以上是关于Rails4:为啥 resque 工人不找工作的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 resque-web 监控 Coffee-resque 工作人员

如何清除卡住/陈旧的 Resque 工作人员?

ruby 清除卡住的resque工人

Resque作业,如何停止正在运行的作业

为啥我的 heroku 工人 dyno 不工作?

resque-web 作为独立的应用程序使用 rails api 监控工作人员