2016-06-10 29 views
0

似乎沒有什麼能阻止perform方法使用Sidekiq API。在只讀模式下應該是安全的。從內部調用Sidekiq API安全嗎?

如果它調用一個「寫入」方法呢?特別是當這種方法作用於當前的工作本身時。

我們希望重新安排工作而不創建新工作,因爲我們需要跟蹤來自其他工作人員的sidekiq-status寶石的工作完成情況。

使用MyWorker.perform_inMyWorker.perform_at重新安排作業從工作人員內部創建一個新的作業,使得難以跟蹤完成的完成。我們正在考慮使用Sidekiq::ScheduledSet.new.findreschedule方法,但重新安排即將完成的工作看起來很尷尬並且有潛在危險。

Sidekiq及其API支持此用例嗎?

回答

0

您可能能夠一起破解某些內容,但如果您嘗試直接修改Redis中的「設置」和「列表」,它會非常慢。它們不是爲了這樣使用而設計的。

這個問題的官方Sidekiq解決方案是批處理。

https://github.com/mperham/sidekiq/wiki/Batches#status

您創建一個作業批次。如果需要重新安排工作,它會在批處理中添加一個新工作,稍後執行。您的其他員工只檢查整個批次的狀態,並且它是否100%完整。

+0

感謝您的回覆。我們將看看批處理功能來解決這個問題。 –