我有以下代码可以发出 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);
Run Code Online (Sandbox Code Playgroud)
它愉快地运行了很长一段时间,但在随机的时间间隔内,它有时会遇到 cURL CA 文件的问题,由于未捕获的异常而导致致命错误。我不确定我能不能做到这一点,因为我已经把它放在一个try catch街区里了。
这是取消我的 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
Run Code Online (Sandbox Code Playgroud)
我想要做的不仅是找出 Guzzle 收到此 cURL 错误的原因,而且还要弄清楚如果它在其他有此 cURL 问题的系统中突然出现,我该如何捕获它,这样它就不会只是使进程崩溃。
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |