РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrSpQuDl 176 of 210 menu

Отложенный запуск Job в Laravel

Иногда Job нужно выполнить не сразу, а через минуту, час или завтра: напоминание, отложенное письмо, повторная попытка. Laravel позволяет задать задержку цепочкой после dispatch.

Вызывают dispatch и сразу delay с интервалом:

<?php use App\Jobs\SendWelcomeEmail; use Illuminate\Support\Carbon; SendWelcomeEmail::dispatch($user) ->delay(now()->addMinutes(10)); ?>

В примере задание станет доступно worker примерно через 10 минут. До этого момента worker его не заберёт (при нормальной работе очереди). Вместо минут можно использовать addSeconds, addHours или конкретный Carbon-момент.

delay не заменяет worker и не меняет код handle - только сдвигает момент, когда задание можно выполнить. При sync задержка может вести себя иначе, чем на database: для проверки отложенного запуска лучше настоящий драйвер очереди и запущенный queue:work.

Задиспатчьте Job с задержкой 1 минута через delay.

Чем dispatch()->delay(...) отличается от обычного dispatch?

Отложите задание на 30 секунд и дождитесь выполнения через worker.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить