Setzen Sie einen Laravel-Job ausnahmsweise fortPhp

PHP-Programmierer chatten hier
Anonymous
 Setzen Sie einen Laravel-Job ausnahmsweise fort

Post by Anonymous »

Ich habe einen Laravel-Job, der versandt wird. Der Job erhält einige Datensätze zur Verarbeitung und ruft dann für jeden eine API auf. Die API könnte gelegentlich einen Fehler auslösen, z. HTTP500 usw. Diese Bibliothek (Goose) verwendet Guzzle.

Ich möchte den Fehler abfangen, den Datensatz markieren, um es später erneut zu versuchen, und mit den restlichen Datensätzen in fortfahren Schleife.

Mein Code lautet wie folgt aber wenn ein Fehler auftritt, wird die foreach-Schleife beendet und der Job wird nicht fortgesetzt.

Ich vermute, dass der Job-Handler in Laravel gibt einen schwerwiegenden Fehler aus und der Job wird auf einer höheren Ebene angehalten.

public function extractArticles() {

$articles = $this->fetchArticlesToExtract();

$goose = new GooseClient();

foreach($articles as $article) {

try {

//Get the Article Data - Errors can happen here

$articleData = $goose->extractContent($article->source_url);

//Do Some Processing

$article->save();

}

catch (\Goose\Exception $e) {

//Set a flag to come back later

//Try continue with next record
continue;
}

}
return;
}


Wie kann ich den Job anweisen, fortzufahren? Hier kann nur eine kleine Anzahl von Fehlern auftreten, und ich habe die Logik geschrieben, es erneut zu versuchen, daher bin ich froh, den Job nicht vollständig abzubrechen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post