如何根据代码版本阻止Sidekiq处理新作业?

时间:2014-10-01 10:04:24

标签: sidekiq cloudfoundry long-running-processes continuous-delivery

我们正在将一个sidekiq工作者的版本部署到Cloud Foundry,作为持续交付管道的一部分。如果新工作不再是最新版本,我们需要阻止工作人员处理新工作。所以:

  1. 工作人员v1正在运行并执行30分钟的工作。
  2. 我们部署了工人代码的v2。
  3. v1应该继续当前的工作,但不能启动任何新工作。
  4. CloudFoundry不允许我们发送USR1,因此我们需要一个解决方案,允许工作人员在每个工作开始之前确定它们是否是最新版本。

1 个答案:

答案 0 :(得分:2)

在V2代码库中使用新的队列名称

e.g /

class ImportantWorker
  include Sidekiq::Worker
  sidekiq_options queue: :new_queue_name
  ....
end

并确保更新sidekiq配置以反映新的队列名称