如何防止Sidekiq根据代码版本处理新作业? [英] How can I prevent Sidekiq processing new jobs based on code version?

查看:128
本文介绍了如何防止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:

  1. Worker v1正在运行并执行30分钟的工作.
  2. 我们部署工作代码的第2版.
  3. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆