我明白監聽者將Job實例傳遞給我的工作人員,我可以使用該實例刪除作業,但是如何刪除工作人員以外的工作? 考慮這種情況:在Laravel 4中刪除工作外的隊列作業?
$job_id=Queue::push('DoTheJob', array('data'=>array(1,2,3)));
If(!someotherjobdone){
// delete job from Queue with job_id
?
}
謝謝
我明白監聽者將Job實例傳遞給我的工作人員,我可以使用該實例刪除作業,但是如何刪除工作人員以外的工作? 考慮這種情況:在Laravel 4中刪除工作外的隊列作業?
$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]);
這裏是要做到這一點取決於你的排隊司機的一種方式: $ sqs_instance =隊列:: getSqs(); $ sqs_instance-> delete($ job_id); – ariaby