加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Heroku雪松堆栈上的Resque工作者终止后,工作计

发布时间:2020-12-17 03:27:53 所属栏目:百科 来源:网络整理
导读:我已成功在heroku雪松堆上运行resque并将接口安装在rails上. 当我开始工作时,一切正常.工人处理工作.但是,当我杀死工人时,Resque仍然认为工人可以使用.当我开始另一个工人时,它认为有2个工人,但实际上只有一个工人. 我还注意到http://devcenter.heroku.com/a
我已成功在heroku雪松堆上运行resque并将接口安装在rails上.

当我开始工作时,一切正常.工人处理工作.但是,当我杀死工人时,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秒才能终止.这有什么事可做,因为我在工作任务上加载了rails环境吗?

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

require "resque/tasks"

task "resque:setup"  => :environment

解决方法

我刚刚发现了问题,在rake任务上传递ENV时会发生这种情况.比如传递QUEUE =’*’.

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

这个问题仍然在https://github.com/defunkt/resque/issues/368讨论

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

https://github.com/yulrizka/resque

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读