2014-09-22 29 views
1

我有一個畫廊的照片,處理照片是通過sidekiq。詢問sidekiq排隊模型

當一個畫廊有照片正在處理或隊列中,我想寫一些東西在頁面中。

爲此,一個選項是在添加到隊列中時用processing標記每張照片,並讓sidekiq工作人員在完成時刪除該照片。缺點是,我需要檢查是否至少有一張照片正在處理,這意味着檢查所有照片...

有沒有辦法直接查詢sidekiq?

+1

「含義檢查所有照片」 - 你是什麼意思?您正在顯示圖像,因此無論如何都要加載它們。此外,「從處理= 1'的照片中選擇count(id)」在每個sql db中都是一個簡單的查詢(並且如果在處理中受索引支持,將會非常快) – 2014-09-22 10:20:57

+1

Sergio's是正確的答案。使用數據庫來存儲每張照片的狀態並讓Sidekiq更新狀態。 – 2014-09-22 17:29:06

+0

如果@MikePerham說,我必須聽。謝謝! – 2014-09-22 17:43:20

回答

2

您可以使用sidekiq-status寶石來追蹤您的工作。然後,您可以使用代碼Sidekiq::Status::working? job_id來檢查特定作業是否正在運行。