Я создаю большое приложение с использованием Laravel и нахожу использование очереди в этом приложении. Сейчас я использую для этого сервис beanstalkd. Тем не менее, я застрял в поиске ответа для этой настройки. Есть ли способ сделать так, чтобы повторные попытки очереди обрабатывались не мгновенно. Я хотел, чтобы это было повторено через n секунд. Спасибо
Задержка повторных попыток очереди Laravel
Ответы (2)
Попробуйте использовать встроенный сервис Queue
и используйте следующее
Queue::later(Carbon::now()->addMinutes(1), $task);
person
Scopey
schedule
06.05.2015
Возможно ли реализовать это для повторных попыток? @scopey
- person jellyfication; 06.05.2015
Возможно, удастся подключиться к хуку
failing
и выполнить пользовательскую повторную попытку. Кроме того, установка флага --delay
для вашего обработчика очереди приводит к неоднозначной задержке. Не совсем уверен, что в противном случае есть установленный способ отложить определенные повторные попытки.
- person Scopey; 06.05.2015
Я просто пытаюсь отправить электронные письма (и ожидаю, что они потерпят неудачу), используя две следующие команды в Laravel 4.2:
php artisan queue:work --daemon --tries=3 --sleep=60
против php artisan queue:work --daemon --tries=3 --sleep=5 --delay=10
, и я могу подтвердить, что с помощью второй команды повторные попытки были предприняты после 10-секундной задержки, а не немедленно ( что было в случае, когда я использовал первую команду).
- person Pierre; 10.06.2015
Чтобы отложить следующую попытку, просто добавьте --delay=[NUM_OF_SECONDS]
к своей команде.
Например, чтобы подождать 30 секунд перед повторной попыткой после сбоя, просто запустите: php artisan queue:work tries=3 --delay=30
person
Jeremy
schedule
30.10.2019