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