关于队列中的 $this->release () 方法问题
在 Illuminate\Queue\InteractsWithQueue 关于这个方法的备注是 Release the job back into the queue.
意思好像是重新加入队列,不过英文文档或者 Laravel-China 中文文档,关于 $this->release() 的用法只有 Rate Limiting(频率限制)
(也可能文档中的用法和我的用法不一样),不知道我在任务类中使用 $this->release(10 * $this->attempts())
重新加入队列的方法是否正确。之前的用法类似 $this->dispatch($this->data)->delay(Carbon::now()->addSeconds(20));
。
/**
* Release the job back into the queue.
*
* @param int $delay
* @return void
*/
public function release($delay = 0)
{
if ($this->job) {
return $this->job->release($delay);
}
}
我也有实际测试了在任务类中使用 $this->release()
方法重新加入队列,结果是可重新加入队列。只是不知道会不会有其它问题抑或是有更好的方法。
[2018-09-20 10:53:13][37Dw16Tj5SUAKXxTtnbMgcrZ6cP2Ojhb] Processing: App\Jobs\test
[2018-09-20 10:53:13][37Dw16Tj5SUAKXxTtnbMgcrZ6cP2Ojhb] Processed: App\Jobs\test
[2018-09-20 10:53:25][37Dw16Tj5SUAKXxTtnbMgcrZ6cP2Ojhb] Processing: App\Jobs\test
[2018-09-20 10:53:25][37Dw16Tj5SUAKXxTtnbMgcrZ6cP2Ojhb] Processed: App\Jobs\test
[2018-09-20 10:53:37][37Dw16Tj5SUAKXxTtnbMgcrZ6cP2Ojhb] Processing: App\Jobs\test
[2018-09-20 10:53:37][37Dw16Tj5SUAKXxTtnbMgcrZ6cP2Ojhb] Processed: App\Jobs\test
推荐文章: