如何防止Sidekiq根据代码版本处理新作业? [英] How can I prevent Sidekiq processing new jobs based on code version?
本文介绍了如何防止Sidekiq根据代码版本处理新作业?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们正在将sidekiq工作者的版本部署到Cloud Foundry,作为持续交付管道的一部分.如果新工作不再是最新版本,我们必须停止工作.所以:
We are deploying versions of a sidekiq worker to Cloud Foundry as part of a continuous delivery pipeline. We need to stop workers processing new jobs if they are no longer the latest version. So:
- Worker v1正在运行并执行30分钟的工作.
- 我们部署工作代码的第2版.
- v1应该继续当前的工作,但不能开始任何新的工作.
CloudFoundry不允许我们发送 USR1 ,因此我们需要一个解决方案,使工人可以在每项工作开始之前确定他们是否是最新版本.
CloudFoundry won't allow us to send USR1, so we need a solution that allows the workers to determine if they are the latest version before every job starts.
推荐答案
在V2代码库中使用新的队列名称
Use a new queue name in your V2 codebase
e.g/
class ImportantWorker
include Sidekiq::Worker
sidekiq_options queue: :new_queue_name
....
end
并确保您更新sidekiq配置以反映新的队列名称
and make sure you update your sidekiq config to reflect the new queue name
这篇关于如何防止Sidekiq根据代码版本处理新作业?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文