2015-05-06 134 views
2

我正在使用Laravel构建一个大型应用程序,并在此应用程序中查找使用队列。我现在正在使用beanstalkd服务。但是,我一直在为这个设置寻找答案。有没有办法让队列重试不立即进行处理。我希望它在n秒后重试。由于Laravel队列重试延迟

回答

2

尝试使用内置Queue服务,并使用以下

Queue::later(Carbon::now()->addMinutes(1), $task); 

Relevant docs

+0

这是可能实现这个重试? @ scopey – jellyfication

+0

可能会挂钩到'失败'挂钩并执行自定义重试。另外,在队列工作器上设置'--delay'标志会给出一个模糊的延迟。不完全确定,否则有一种方法可以延迟特定的重试次数。 – Scopey

+1

我只是尝试在Laravel 4.2上使用以下两个命令发送电子邮件(并期望它们失败):'php artisan queue:work --daemon --tries = 3 --sleep = 60' vs php artisan queue:work --daemon --tries = 3 --sleep = 5 --delay = 10',我可以确认使用第二个命令,重试是在10秒延迟后尝试的,而不是立即重试(这是当我使用第一个命令)。 – Pierre