Laravel установка задания как неудачного - PullRequest
0 голосов
/ 25 апреля 2020

Как пометить / установить задание как невыполненное?

Я использую функцию закрытия для отправки задания, которое вызывает внешний API, и я бы хотел установить вручную, если задание выполнено успешно или неуспешно, на основе ответа API.

Вот мой код, я использую простой пример вместо вызовов API.

public function sendSMS( $numbers ) {

    dispatch(function () use ( $numbers ) {            
        $this->smsProcess($numbers, $this->note->content);
    });

}

public function smsProcess( $numbers, $message ) {

    $int = random_int( 1, 10 ) * random_int( 1, 10 );

    if ( $int < 50  ) {
        throw ValidationException::withMessages('Less than 50')->status(403);
    } else {
        throw ValidationException::withMessages('Greater than 50')->status(403);
    }
}

Когда запускается функция sendSMS, я вижу ожидающее задание для smsProcess

Но когда Я запускаю queue:work задание, которое Processed выполняется и не дает сбоя,

Так как вручную запустить задание как неудачное?

Если я добавлю код ошибки на smsProcess, я вижу, что задание помечено как Failed Из-за php ошибка

1 Ответ

1 голос
/ 25 апреля 2020

Вы должны использовать класс Exception, а не ValidationException

public function smsProcess( $numbers, $message ) {

    $int = random_int( 1, 10 ) * random_int( 1, 10 );

    if ( $int < 50  ) {
        throw new \Exception('Less than 50');
    } else {
        throw new \Exception('Greater than 50');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...