我们使用Asgard使用Sidekiq对Rails 4应用程序进行部署。我们想知道在部署正在进行时队列中的作业会发生什么,并终止工作节点。
Sidekiq的关机流程是什么?它会重新排队那些无法完成的工作,还是会失去正在运行的工作状态?
答案 0 :(得分:5)
如果作业在停止信号后8秒内没有完成 - 它将被推入Redis并稍后重新启动。 Sidekiq wiki:
默认情况下,Sidekiq为工作人员提供8秒的关闭时间。这是 精心挑选,因为Heroku给了一个10秒的关闭过程 在杀死之前。 8秒后,任何剩余的工作仍然存在 进展被推回到Redis上,所以他们可以立即进行 当Sidekiq重启时重启。请记住,Sidekiq将运行 你的工作至少一次,所以他们需要是幂等的。这是一 作业如何运行两次的例子。