当工作节点重新启动时,正在运行的Sidekiq作业会发生什么?

时间:2017-04-20 22:17:45

标签: ruby-on-rails ruby sidekiq

我们使用Asgard使用Sidekiq对Rails 4应用程序进行部署。我们想知道在部署正在进行时队列中的作业会发生什么,并终止工作节点。

Sidekiq的关机流程是什么?它会重新排队那些无法完成的工作,还是会失去正在运行的工作状态?

1 个答案:

答案 0 :(得分:5)

如果作业在停止信号后8秒内没有完成 - 它将被推入Redis并稍后重新启动。 Sidekiq wiki

  

默认情况下,Sidekiq为工作人员提供8秒的关闭时间。这是   精心挑选,因为Heroku给了一个10秒的关闭过程   在杀死之前。 8秒后,任何剩余的工作仍然存在   进展被推回到Redis上,所以他们可以立即进行   当Sidekiq重启时重启。请记住,Sidekiq将运行   你的工作至少一次,所以他们需要是幂等的。这是一   作业如何运行两次的例子。