CURL-Fehler von Guzzle abfangen

Ich habe den folgenden Code, der eine Guzzle 4.1-Anforderung erstellt:

$client = new \GuzzleHttp\Client(['defaults/headers/User-Agent' => $userAgentString]);

$retry = 0;

do {
    try {
        return $client->post($url, $options);
    } catch (\Exception $e) {
        echo $e->getMessage();
        $retry++;
        continue;
    }
} while ($retry < 3);

Es läuft eine Weile ohne Probleme, aber in unregelmäßigen Abständen kann es zu Problemen mit der cURL-CA-Datei kommen, die aufgrund einer nicht erfassten Ausnahme einen schwerwiegenden Fehler verursachen. Ich bin mir nicht sicher, ob ich das tun kann, weil ich es bereits in einem @ habtry catch Block

Hier ist der Fehler, der meinen Laravel-Konsolenbefehl beendet:

cURL error 77: error setting certificate verify locations:
  CAfile: /home/vagrant/Projects/test.dev/laravel/vendor/guzzlehttp/guzzle/src/cacert.pem
  CApath: /etc/ssl/certs (0)
PHP Fatal error:  Uncaught exception 'ErrorException' with message 'include(/home/vagrant/Projects/test.dev/laravel/vendor/filp/whoops/src/Whoops/Exception/Inspector.php): failed to open stream: Too many open files' in /home/vagrant/Projects/test.dev/laravel/vendor/composer/ClassLoader.php:382

Was ich tun möchte, ist nicht nur herauszufinden, warum Guzzle diesen cURL-Fehler bekommt, sondern auch, wie ich ihn abfangen kann, wenn er in anderen Systemen mit diesem cURL-Problem auftritt, damit er nicht nur zum Absturz führt.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage