В настоящее время я использую Horizon, используя Redis на моей Homestead VM.
У меня есть пример очереди сообщений, который выглядит примерно так:
<?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!");
}
}
Я успешно запускаю 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
).
Так почему мои неудачные задания не повторяются?