我目前正在我的Homestead VM上使用Redis运行Horizon。
我有一个可排队的可邮寄示例,看起来有点像这样:
<?php
namespace App\Mail;
// ... imports ...
class WelcomeEmail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public function build()
{
sleep(10);
throw new \Exception("TEST JOB FAILED!");
}
}
我正在使用Supervisor配置成功运行Horizion,如下所述:https://laravel.com/docs/5.6/horizon#deploying-horizon
[program:horizon]
process_name=%(program_name)s
command=php /home/ubuntu/code/myapp/artisan horizon
autostart=true
autorestart=true
user=vagrant
redirect_stderr=true
stdout_logfile=/home/ubuntu/code/myapp/storage/horizon.log
如上所述运行上述可邮寄时:
new WelcomeMail();
创建一个新作业,并按预期大约10秒后失败。
我的问题是Horizon似乎没有重试失败的工作。默认情况下,它应该在90秒后重试(根据config/queue.php
),重试3次(根据config/horizon.php
)。
那么为什么失败的工作没有重试?