PrStandup
PrStandup

Reputation: 343

when api call fails on a laravel job

I have a background job that fetches data from google adwords. Now my issue is when I fetch the data using a background worker.

When the response its empty what it the best thing to do is there any way to re run again or what is the best approach ?

public function handle()
{
    $googleService = new GoogleAds;

    $data = $googleService->report()
        ->from('CRITERIA_PERFORMANCE_REPORT')
        ->during('20170101', '20170210')
        ->select('CampaignId, Id, Criteria, IsNegative, Clicks, Ctr, Cost, Labels')
        ->getObject();

    if(!isset($data->result) || empty($data->result)){

      //what to do when no data back ? 
    }
    $this->transform->response($data);
}

Upvotes: 1

Views: 187

Answers (1)

Diogo Sgrillo
Diogo Sgrillo

Reputation: 2701

You can throw an exception, then it will go back to your queue, and the worker will try to execute it again.

When you launch your worker, there is a --tries parameter that indicates how many time it will try to execute before it goes to the table failed_jobs.

You can check the reference in the official documentation.

Upvotes: 1

Related Questions