Guzzle:未捕获的异常和内存泄漏
Guzzle: Uncaught exception & memory leak
我在使用 Guzzle
时遇到奇怪的问题
当我尝试模拟错误请求(例如 returns 状态代码 404 的请求)时,Guzzle 会抛出一个 ClientException,其中包含该请求失败原因的所有详细信息。
当我尝试捕获此异常时,我的脚本退出并出现致命错误,表明我没有捕获异常,并且它显示 XDebug 跟踪,表明我不知何故发生了内存泄漏。
我的代码如下所示:
注意: httpClient 是 GuzzleHttp/CLient 的有效实例。
$request = $this->httpClient->createRequest(
'GET',
'/templates/'.$id
);
try {
$response = $this->httpClient->send($request);
} catch (\Exception $exception) {
die('exception occured');
}
我最终遇到的错误如下:
Guzzle 堆栈跟踪
内存泄漏
有人对可能导致此未捕获异常 + 泄漏的原因有什么建议吗?
您的 XDebug 想要消耗比定义限制更多的内存
您的限制是:512MO 脚本
您的 XDebug 想要消耗:652MO
您有 2 个解决方案来解决此技术问题
1 - 更新你的 php.ini => memory_limit = 768M
然后重启你的服务器
2 - 在您的 PHP 脚本中将此行代码放在顶部:
ini_set("memory_limit","768M");
现在您必须通过禁用 XDebug
完全确定您的生产环境中不会发生此内存泄漏
我在使用 Guzzle
时遇到奇怪的问题当我尝试模拟错误请求(例如 returns 状态代码 404 的请求)时,Guzzle 会抛出一个 ClientException,其中包含该请求失败原因的所有详细信息。
当我尝试捕获此异常时,我的脚本退出并出现致命错误,表明我没有捕获异常,并且它显示 XDebug 跟踪,表明我不知何故发生了内存泄漏。
我的代码如下所示:
注意: httpClient 是 GuzzleHttp/CLient 的有效实例。
$request = $this->httpClient->createRequest(
'GET',
'/templates/'.$id
);
try {
$response = $this->httpClient->send($request);
} catch (\Exception $exception) {
die('exception occured');
}
我最终遇到的错误如下:
Guzzle 堆栈跟踪
内存泄漏
有人对可能导致此未捕获异常 + 泄漏的原因有什么建议吗?
您的 XDebug 想要消耗比定义限制更多的内存
您的限制是:512MO 脚本
您的 XDebug 想要消耗:652MO
您有 2 个解决方案来解决此技术问题
1 - 更新你的 php.ini => memory_limit = 768M
然后重启你的服务器
2 - 在您的 PHP 脚本中将此行代码放在顶部:
ini_set("memory_limit","768M");
现在您必须通过禁用 XDebug
完全确定您的生产环境中不会发生此内存泄漏