使用 Laravel 8 从 Redis 中删除延迟的作业

Remove delayed Job from Redis with Laravel 8

我在默认的 redis 队列中有作业延迟,我想在模型的状态更新到某个值时将其删除。

所以我正在使用更新的观察者:

     /**
     * If status change from active to draft remove delayed job
     *
     * @param  Draw  $draw
     */
    public function updated(Draw $draw)
    {
        $originalStatus = $draw->getOriginal('status');
        $newStatus = $draw->status;

        if ($originalStatus === 'active' && $newStatus === 'draft') {
            $job = Redis::get('App\Models\Draw:' . $draw->id);
            $job->delete();
        }
    }

使用此代码 $job 始终为空。你知道我如何从 redis 默认队列中得到我的工作吗?我不知道我需要使用什么 redis 键来获取特定的作业

也许 proper/easy 终止作业的方法应该是在 job 中检查状态 运行 ,然后根据状态。