使用 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
中检查状态 运行 ,然后根据状态。
我在默认的 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
中检查状态 运行 ,然后根据状态。