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

最进在学习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只能删除当前的队列,请教大神们,如何删除后面的消息队列?

阅读 1.1k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题