我找到了如何在创建作业后获取作业 ID,但如何从队列中删除该作业?
$chat = \App\Models\Chat\Chat::first();
$chatUser = App\Models\Chat\ChatUser::first();
$virtualId = 'asd';
$job = (new \App\Jobs\Chat\CloseClientChat(
$chat,
$chatUser,
$virtualId
))
->onConnection('redis')
->onQueue('chat')
->delay(now()->addSeconds(15));
$jobId = app(\Illuminate\Contracts\Bus\Dispatcher::class)->dispatch($job);
/** how to remove from \Queue ? **/
最佳答案
您可以删除
或释放
底层队列作业。如果您尝试在监听器之外的类中执行此操作,请导入 Illuminate\Queue\InteractsWithQueue
特性以访问这些方法。它默认加载到监听器上,因此这些方法已经可用。
Laravel 的文档给出了如何执行此操作的示例 here .查找“手动访问队列”
关于php - 如何通过作业 ID 从 Redis 队列中删除作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292682/