1

我們正在將部署到Cloud Foundry的sidekiq工作人員版本作爲持續交付管道的一部分。如果他們不再是最新版本,我們需要阻止工人處理新工作。所以:如何防止Sidekiq根據代碼版本處理新作業?

  1. Worker v1正在運行並執行30分鐘的工作。
  2. 我們部署工號代碼的v2。
  3. v1應繼續當前的工作,但不能啓動任何新的工作。

CloudFoundry不會允許我們發送USR1,所以我們需要一個解決方案,讓工作人員在每次工作開始前確定它們是否是最新版本。

回答

2

在你的代碼庫V2

e.g使用新的隊列名稱/

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

,並確保您更新sidekiq配置以反映新的隊列名稱

+1

我會同意。將全局版本附加到sidekiq.yml和您的工人中的所有隊列名稱。 – 2014-10-01 16:01:04

+1

優秀;似乎運作良好,儘管我們需要看看堆積如山的孤兒隊伍會發生什麼情況,並提出停止創造更多職位的計劃...... – 2014-10-02 16:33:48

相關問題