簡體   English   中英

php-resque:如何殺死特定工作?

[英]php-resque: How to kill a specific job?

我正在使用php-resque庫,可以使用以下代碼創建和跟蹤作業。

$token = Resque::enqueue('queue', 'Job', NULL, true);

$statusTracker = new Resque_Job_Status($token);
$status = $statusTracker->get();

但是考慮到enqueue方法返回的令牌,該如何停止工作?

我發現這個項目的頁面上,但它不使用工作令牌停止作業,它使用的作業人員ID來代替。

考慮到我可能有多個活動的工作人員,如何找到正在執行請求的工作的工作人員ID?

據我所知,Resqueue不支持“中止”或“停止”工作。 但是,如果您能夠以某種方式設法將取消動作保存在某種類型的數據庫中,那就可以了。 您可以在performAction()中進行其他檢查。 就像是;

class My_Job {
    public function perform() {
        $wasCanceled = true;
        if( $wasCanceled ) {
            throw new Exception("Job was cancelled");
        }

        // Perform job stuff.
    }
}

最后但並非最不重要的; 如果在取消之前已經執行了作業,這可能並不總是有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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