小编典典

终止后,在Heroku雪松堆栈上重新排序工人计数仍然存在

redis

我已经在heroku雪松堆栈上成功运行resque并将接口安装在导轨上。

当我开始工作时,一切正常。工人处理工作。但是当我杀死工人时,Resque仍然认为该工人有空。当我启动另一个工作程序时,它认为有2个工作程序,但实际上只有一个正在运行。

我在这里也注意到了形式http://devcenter.heroku.com/articles/ps,heroku在杀死工人时会发送SIGTERM,如果没有终止,则发送SIGKILL。

这是我的工人日志

2011-08-11T02:32:45+00:00 heroku[worker.1]: Starting process with command `bundle exec rake resque:work QUEUE=*`
2011-08-11T02:32:46+00:00 heroku[worker.1]: State changed from starting to up
2011-08-11T02:33:58+00:00 heroku[worker.1]: State changed from up to stopping
2011-08-11T02:34:00+00:00 heroku[worker.1]: Stopping process with SIGTERM
2011-08-11T02:34:09+00:00 heroku[worker.1]: Error R12 (Exit timeout) -> Process failed to exit within 10 seconds of SIGTERM
2011-08-11T02:34:09+00:00 heroku[worker.1]: Stopping process with SIGKILL
2011-08-11T02:34:11+00:00 heroku[worker.1]: Process exited

我看到我的过程需要10秒钟以上才能终止。这是因为我在worker任务上加载了rails环境吗?

这是我的耙任务 lib/tasks/resque.rake

require "resque/tasks"

task "resque:setup"  => :environment

阅读 348

收藏
2020-06-20

共1个答案

小编典典

我只是发现了问题,这是在传递ENVrake任务时发生的。就像过去的时候QUEUE='*'

这是更完整的问题
https://github.com/defunkt/resque/issues/319#issuecomment-1789239

和问题仍然存在于https://github.com/defunkt/resque/issues/368

任何我的临时补丁,使resque只运行所有que。

https://github.com/yulrizka/resque

2020-06-20