Диспетчеризация Job в Laravel
Когда класс Job готов, его ставят
в очередь методом dispatch.
Вызов обычно делают в контроллере
или слушателе события: пользователь
уже сохранён - можно отложить
письмо или отчёт.
Синтаксис простой: имя класса,
потом dispatch, в скобках -
аргументы конструктора Job:
<?php
use App\Jobs\SendWelcomeEmail;
SendWelcomeEmail::dispatch($user);
?>
dispatch не выполняет
handle сам по себе
(кроме драйвера sync).
Он кладёт задание в хранилище
очереди. При database
появится запись в таблице
jobs. Контроллер может
сразу вернуть ответ пользователю.
Аргументы dispatch должны
совпадать с конструктором Job.
Передали $user -
в конструкторе должно быть
свойство под пользователя.
Ошибку сигнатуры увидите при
диспатче или при выполнении.
Запуск worker - отдельный шаг.
В этом уроке достаточно вызвать
dispatch и убедиться,
что код постановки на месте.
Задиспатчьте свой Job из контроллера после создания пользователя.
Что делает dispatch
и что он не делает сам?
Передайте в dispatch
те же данные, что ждёт
конструктор Job.