如何通过作业ID从Redis队列中删除作业?

时间:2019-07-31 14:04:40

标签: php laravel caching redis queue

我找到了创建作业后如何获取作业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 ? **/

1 个答案:

答案 0 :(得分:0)

您可以deleterelease基础队列作业。如果尝试在侦听器之外的类中执行此操作,请导入Illuminate\Queue\InteractsWithQueue特征以访问这些方法。默认情况下,它已加载到侦听器上,因此这些方法已在此处使用。

Laravel的文档提供了如何进行此操作的示例here。查找“手动访问队列”