- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我们重新启动或部署时,我们会在失败的队列中使用 Resque::TermException (SIGTERM)
获得许多 Resque 作业。或 Resque::DirtyExit
.
我们正在使用新的 TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10
在我们的 Procfile 中,我们的工作线程如下所示:
worker: TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 bundle exec rake environment resque:work QUEUE=critical,high,low
resque-retry
我认为这可能会自动重试这两个异常?但似乎不是。
Resque::TermException
手动救援在每个作业中,并使用它来重新安排作业。但是有没有一种干净的方法可以为所有工作做到这一点?甚至是猴子补丁。 最佳答案
我也遇到了这个问题。结果是 Heroku 发送了 SIGTERM
不仅向父进程发出信号,还向所有 fork 进程发出信号。这不是 Resque 期望的导致 RESQUE_PRE_SHUTDOWN_TIMEOUT
的逻辑被跳过,强制执行作业而没有任何时间尝试完成作业。
Heroku 在 SIGTERM
后让 worker 有 30 秒的时间正常关闭发出。在大多数情况下,如果作业无法完成,这是足够的时间来完成作业,并留出一些缓冲时间以将作业重新排队到 Resque。但是,要使用所有这些时间,您需要设置 RESQUE_PRE_SHUTDOWN_TIMEOUT
和 RESQUE_TERM_TIMEOUT
环境变量以及补丁 Resque 以正确响应 SIGTERM
被发送到 fork 进程。
这是一个 gem,它修补了 resque 并更详细地解释了这个问题:
https://github.com/iloveitaly/resque-heroku-signals
关于heroku - 从 Heroku 上的 Resque::TermException 或 SIGTERM 干净地恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074551/
当我们重新启动或部署时,我们会在失败的队列中使用 Resque::TermException (SIGTERM) 获得许多 Resque 作业。或 Resque::DirtyExit . 我们正在使用
我是一名优秀的程序员,十分优秀!