#laravel #laravel-5
#laravel #laravel-5
Вопрос:
Я пытаюсь выяснить, как обрабатывать неудачные задания. Итак, в моем классе заданий у меня в основном есть что-то вроде этого
public function handle()
{
try {
$someService = new SomeService($);
$success = $someService->makeApiRequest();
if($success) {
//do something
} else {
//trigger failed
}
} catch (Exception $e) {
$this->failed($e);
}
}
public function failed(Exception $exception)
{
//Log information
}
Что это делает, так это вызывает класс обслуживания, который выполняет запрос API. Этот класс возвращает true или false в зависимости от того, был ли вызов API успешным или нет.
На данный момент у меня просто есть метод API, возвращающий false . Это должно означать, что задание не выполнено. Однако сбой функции не вызывается, и, насколько это касается Laravel, задание обрабатывается.
Как я могу вручную запустить сбой функции, видя, что у меня нет исключения?
Спасибо
Комментарии:
1. Вы помещаете задание в очередь или выполняете его синхронно?
Ответ №1:
Поскольку вы используете задания, вы не перехватываете исключение. Фреймворк сделает это за вас и пометит задание как неудачное.
Итак, ваш handle
метод должен быть просто
public function handle()
{
$someService = new SomeService($);
$success = $someService->makeApiRequest();
if($success) {
//do something
} else {
trow new Exception('error message goes here');
}
}