Laravel как я могу отменить отправку отложенного задания?

#php #laravel-5.7

#php #laravel-5.7

Вопрос:

В моем коде laravel я отправил задание:

  MyJob::dispatch()->delay(now()->addHours(48));
  

Но в другом фрагменте кода я хочу, чтобы это задание не было отправлено, потому что обнаружены условия, при которых больше не требуется выполнение задания. phpcode для соответствия критериям отмены отправки:

 
if ( $no_job_needed){
 // Undispatch Job there
}

  

Ответ №1:

Вы можете использовать метод dispatchIf, например:

 MyJob::dispatchIf($no_job_needed  === false)->delay(now()->addHours(48));
  

Комментарии:

1. Ну, мой случай заключается в том, что я отправляю задание, например, для выделения некоторых баллов пользователю. Но другое событие, например, полученный вызов api, приводит к тому, что условие для моей работы больше не требуется.