Laravel 5.5 - Job - триггер сбой () метод с "GuzzleHttp\Exception"
Я создаю простую работу Laravel, которая отправляет запрос GET с GuzzleHttp\Client
на удаленный веб-сервис. Когда GuzzleHttp
запрос вернет ошибку, он бросит экземпляр GuzzleHttp\Exception\ClientException
но failed()
метод должен быть экземпляром app\Jobs\Exception
, Это код:
namespace app\V1\Jobs;
class setRegionJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
// . . .
public function handle()
{
$client = new \GuzzleHttp\Client([
'base_uri' => 'http://link_to_api/'),
'timeout' => 2.0,
]);
$res = $client->request('GET', '?key=param1&key2=param2');
if ($res->getStatusCode() == 200) {
$data = json_decode($res->getBody(), true)['data'];
} else {
$data = null;
}
}
public function failed(Exception $exception)
{
// do something
}
}
Затем, когда $client->request('GET', '?key=param1&key2=param2')
Исключение: ОШИБКА:
[2017-11-09 14:38:40] local.ERROR: Type error: Argument 1 passed to app\Jobs\setRegionJob::failed() must be an instance of app\Jobs\Exception, instance of GuzzleHttp\Exception\ClientException given.
Как я могу вызвать failed()
метод?