【发布时间】:2021-03-13 14:42:06
【问题描述】:
我在默认 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 密钥来获取特定作业
【问题讨论】:
-
你不能得到这样的工作,延迟的工作保留在
sorted set。请检查这个答案stackoverflow.com/a/62905143/2188922