說我有一份工作,在這樣一個單獨的線程觸發關閉:Sidekiq作業存儲對類常量的引用,還有其他什麼? Rails的
TaxCalculator.perform_async({ user_id: user.id, description: 'test description', count: 1 })
說實際的類是一樣的東西:
class TaxCalculator
def perform(args)
user = User.find(args['user_id'])
description = args['description']
#some stuff goes on here
end
end
說排隊很長。有些事情會發生,也許代碼更改和部署已經完成。當工作終於開始時,需要什麼參考。如果班級名稱更改爲其他人喜歡說的Namespace::TaxCalculator
,該作業是否會失敗? Sidekiq工作仍有哪些參考依據?參數?該ID?班級的名字?
典型的建議是將SIGUSR1發送到Sidekiq守護程序,告訴它停止接受新工作,讓它完成運行隊列中的所有作業,用這些類型的更改重新部署您的代碼,發送SIGTERM殺死守護進程,並重新啓動它。 https://github.com/mperham/sidekiq/wiki/Deployment#overview – mwp