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

标签 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 ? **/

最佳答案

您可以删除释放 底层队列作业。如果您尝试在监听器之外的类中执行此操作,请导入 Illuminate\Queue\InteractsWithQueue 特性以访问这些方法。它默认加载到监听器上,因此这些方法已经可用。

Laravel 的文档给出了如何执行此操作的示例 here .查找“手动访问队列”

关于php - 如何通过作业 ID 从 Redis 队列中删除作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292682/

相关文章:

php - 将反斜杠插入数据库

javascript - AJAX 响应后提交表单时出现VerifyCsrfToken 异常

c# - Nhibernate 二级缓存与 AliasesToBean 转换器

php - JQuery .eq 选择器不选择元素

javascript - 为什么 thenextweb 团队页面包含一个带有 <script> 标签的外部 php 文件

laravel - Vuejs v-for 不填充 laravel blade 中的选择选项值

php - Laravel:如何在 Laravel 中包含 Vendor 文件夹中的文件

php - W3 Total Cache - 允许编辑者从缓存中清除单个帖子

CSS 更改未在网站上更新

javascript - 将每一个结果一一展示