簡體   English   中英

刪除Laravel 4中工作人員之外的隊列作業?

[英]Delete a queue job outside of a worker in Laravel 4?

我理解監聽器將Job實例傳遞給我的worker,我可以使用該實例刪除該作業,但是如何刪除worker之外的作業? 考慮這種情況:

$job_id=Queue::push('DoTheJob', array('data'=>array(1,2,3)));

If(!someotherjobdone){
// delete job from Queue  with job_id
?
}

謝謝

我不確定這是否正確,但我想你想把這個工作從隊列中“彈出”:

$job_id=Queue::push('DoTheJob', array('data'=>array(1,2,3)));

If(!someotherjobdone){
    Queue::pop($job_id);
}

如果這不起作用,你可以嘗試:

$queue=Queue::getQueue($job_id);
Queue::pop($queue);

就我而言,我正在實施SQS隊列。 如果我有消息的“ReceiptHandle”(與接收消息的特定實例相關聯的ID),我可以通過SQSManager訪問SqsClient對象來刪除它,因為IoC容器可以訪問管理器。

$queue_manager = App::make("queue");
$sqs_queue = $queue_manager->connection('sqs');
$sqs_client = $sqs_queue->getSqs(); 
$sqs_client->deleteMessage(['QueueUrl' => $queue_url, 'ReceiptHandle' => $receipt_handle]);

暫無
暫無

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

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