2015-05-06 4 views
2

Я создаю большое приложение с использованием Laravel и нахожу использование очереди в этом приложении. Для этого я использую службу beanstalkd. Тем не менее, я застрял в поиске ответа для этой настройки. Есть ли способ, чтобы повторить попытку очереди, не мгновенно. Я хотел, чтобы это повторилось через n секунд. БлагодаряLaravel queue retries delay

ответ

2

Попробуйте использовать встроенные Queue службы и использовать следующие

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

Relevant docs

+0

возможно ли это осуществить это для повторных попыток? @scopey – jellyfication

+0

Возможно, вы сможете зацепить крючок 'failing' и выполнить пользовательскую повторную попытку. Кроме того, установка флага '-delay' на рабочем столе очереди вызывает неоднозначную задержку. Не совсем уверен, что есть установленный способ отложить определенные повторы в противном случае. – Scopey

+1

Я просто пытаюсь отправить электронные письма (и ожидая их сбой), используя две следующие команды в Laravel 4.2: 'php artisan queue: work --daemon --tries = 3 --sleep = 60' versus' php artisan queue: work --daemon --tries = 3 --sleep = 5 --delay = 10', и я могу подтвердить, что, используя вторую команду, попытки были предприняты после 10-секундной задержки вместо немедленного повторного (это было тогда, когда я использовала первую команду). – Pierre