Что-то вроде этого нет в API, потому что это не точка Queue
.
Это асинхронный поэтому после вызова Mail::queue
вы сразу получаете контроль и выполнение кода продолжается. Это не означает, что фактическая работа была выполнена, только что она была запланирована. И нет никакого способа написать Mail::whenJobIsComplete
, потому что это означало бы, что полное выполнение вашего кода должно было бы остановиться и дождаться завершения задания. Там никоим образом это не могло бы работать асинхронно.
Вы можете, однако, периодически опрос для выполненных работ и выполнения кода, когда это произойдет. Есть функция build-in для опроса неудачных заданий в API.
Но лучший подход был бы написать свой собственный queue listener, и добавление функциональности помимо handleWorkerOutput
call. Опять же, это асинхронно, этот код будет работать в какой-то неопределенной точке в будущем, даже не близко к месту, где вы изначально называли Mail::queue
.
Почему вы не отправляете электронную почту непосредственно в конце вашего слушателя очереди? –
Электронная почта отправляется в очередь, я хочу выполнить задачу после завершения выполнения очереди. –