![](/img/trans.png)
[英]Good queue system - or, how to place a job in resque from another language
[英]How resque removes job from the queue?
我已經在我的rails應用程序中實現了resque排隊系統。 我想知道從入隊到從隊列中刪除的Resque作業的流程。
傳統的工作流程以及使用寶石的方法是,
1.重新入隊(Resque :: Job.create),
2. Job調用類的“ perform”方法(Resque :: Job.perform),然后
3. Resque從隊列中刪除作業。
我調試了gem來找出第3步中使用的方法,但是找不到它。 如我所調試的,方法Resque :: Job.destroy,Resque :: Job.dequeue不負責此任務。 誰能告訴我從隊列中刪除作業的方法
。
請注意,我不想顯式刪除作業,我想要從隊列中刪除作業的典型resque方法。
提前致謝。
Resque實際上使用“出隊”方法刪除作業:
def dequeue(klass, *args)
Job.destroy(queue_from_class(klass), klass, *args)
end
要從隊列中選擇要處理的作業,請使用“ pop”方法:
def pop(queue)
decode redis.lpop("queue:#{queue}")
end
因此,如果工作程序失敗(或按ctrl + c鍵),則不會顯示已刪除作業的痕跡。 我認為只有在工作完成而沒有任何例外的情況下,才應該彈出工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.