如何删除同名字所有队列或者后面的队列?

飘雪公子
  • 156
广东

最进在学习think queue消息队列,遇到一个问题请教各位大神!

应用页面
$dataArray = array(['id' => 1, 'bizId' => '你好你好', ],['id' => 2, 'bizId' => '你好你好', ],['id' => 3, 'bizId' => '你好你好', ],['id' => 4, 'bizId' => '你好你好']);

    $dateTime = 0;
    foreach($dataArray as $k => $v){
        $dateTime = $dateTime + 60;
        $jobData = ['id' => $v['id'], 'bizId' => $v['bizId']];
        $isPushed = Queue::later($dateTime, 'app\api\job\Job1', $jobData, $jobQueueName);
    }

消费页面
public function fire(Job $job, array $data)

{

    if ($data['id'] == 2){
         $job->delete();
        echo "删除任务" . $job->attempts() . '';
    }else{
        $isJobDone = $this->doHelloJob($data);
        $job->delete();
        echo "删除任务" . $job->attempts() . '';
    }
}

当id等于2的时候,要把后面的消息队列删除,可是用$job->delete只能删除当前的队列,请教大神们,如何删除后面的消息队列?

回复
阅读 357
1 个回答

你是不是给自己加了个套啊,感觉不需要把后面的删掉,直接重置整个队列为空就行了。id=2的意思就是不再进行后续处理了,同时因为处理一个就删除一个,所以整个队列就作废了呗。

宣传栏