我有以下代碼:如何找出一組Resque作業是否已完成?
[23, 45, 69, 20].each do |page_id|
Resque.enqueue(ProcessPage, page_id)
end
我想知道當所有這些工作都處理完畢後通過郵件通知用戶。我的第一個嘗試是在工作結束時通知用戶,但這對每項工作都是單獨工作的。
我發現這個寶石resque-status,這基本上讓你這樣做:
job_ids = []
[23, 45, 69, 20].each do |page_id|
job_ids << ProcessPage.create(page_id)
end
然後您可以通過檢查作業的狀態:
status = Resque::Plugins::Status::Hash.get(job_id)
什麼混淆我是。 ..我應該什麼時候檢查所有狀態?我的意思是,我會在一段時間內檢查所有工作的狀態嗎?這將使服務器超時,任何想法我可以做到這一點?
你會使用ajax或類似的東西 – phoet
@phoet你是什麼意思?我多久會做一次AJAX調用以及爲什麼要這樣做?我需要通過電子郵件通知用戶。 –
你沒有寫在你的問題。你可以開始另一項工作來檢查狀態。 – phoet