我有以下代码发出 Guzzle 4.1 请求:
$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);
它运行了相当长一段时间,但在随机的时间间隔内,有时 cURL CA 文件会出现问题,由于未捕获的异常而导致致命错误。我不确定我能做什么,因为我已经把它放在一个try catch
block.
以下是导致我的 Laravel 控制台命令失效的错误:
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
我想做的不仅是弄清楚为什么 Guzzle 会出现此 cURL 错误,而且还要弄清楚如果它出现在其他有此 cURL 问题的系统中,我该如何捕获它,这样它就不会导致进程崩溃。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)