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() метод?

0 ответов

Другие вопросы по тегам