簡體   English   中英

resque如何從隊列中刪除作業?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM