ruby-on-rails - worker 终止后,Heroku cedar stack 上的 Resque worker 计数仍然存在

标签 ruby-on-rails ruby-on-rails-3 heroku redis resque

我已经成功地在 heroku cedar stack 上运行 resque 并将接口(interface)挂载到 rails 上。

当我启动 worker 时,一切正常。 worker 处理工作。但是当我杀死 worker 时,Resque 仍然认为 worker 可用。当我启动另一个 worker 时,它认为有 2 个 worker 但实际上只有一个在运行。

我也注意到这里的表格 http://devcenter.heroku.com/articles/ps heroku 在杀死 worker 时发送 SIGTERM,如果没有终止,则发送 SIGKILL。

这是我的 worker 日志

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 环境有什么关系吗?

这是我的 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

关于ruby-on-rails - worker 终止后,Heroku cedar stack 上的 Resque worker 计数仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7020943/

相关文章:

ruby-on-rails - Rails 没有 ActiveRecord 的好处,Grails 没有 GORM

ruby-on-rails - 在寻找不存在的 key 时,还有其他人遇到 aws-s3 超时问题吗? S3 对象存在?和 S3 Object.request( :head, ..)

heroku - 全新的 Luminus 应用程序给出错误 : Could not find or load main class clojure. main

javascript - 为什么这个函数console.log 20次而不是一次?

ruby-on-rails - 如何通过 Rspec 测试 Redis 锁

ruby-on-rails - Rails 复杂 View 表单与 has_many :through association

ruby-on-rails - Rails strip_insignificant_zeros 默认设置为 true

ruby-on-rails - Rails 开发模式下的日志轮换?

sql - 如何让elasticsearch执行类似于SQL 'LIKE'

ruby-on-rails - heroku run rake db :migrate error “/usr/bin/env: ruby2.2: No such file or directory”