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

San*_*uja 1 ruby ruby-on-rails sidekiq

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

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

ide*_*dej 6

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

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

  • 正确,您可以使用“-t”调整默认值 8 秒 (2认同)