【问题标题】:Laravel 4 Artisan & Guzzle - Causing zombie processesLaravel 4 Artisan & Guzzle - 导致僵尸进程
【发布时间】:2026-02-06 09:40:02
【问题描述】:

对于办公室内的站点检查状态板,我使用 L4,以及使用 Guzzle 将 http 请求发送到站点列表的工匠命令。

由于某种原因,如果留得足够长,返回服务器并运行top,表明有多达十几个php artisan check:sites 进程仍在运行,导致服务器内存问题,以及其他进程失败由于内存不足错误。

有人知道是什么原因造成的吗?我认为这可能是 Guzzle / php-curl 泄漏内存,但我很想知道是否有办法阻止它这样做。

顺便说一句 - cron 执行的 php 命令实际上设置了 120 秒的超时,使用 -d max_execution_time=120 标志,认为这可能会在两分钟后完全杀死任何进程,但似乎没有工作。

【问题讨论】:

  • 我在某些命令上遇到了完全相同的问题,这些命令获取和解析一些 RSS 提要。我希望得到一些帮助:/

标签: php laravel centos


【解决方案1】:

您可以检查 Guzzle 请求的超时并将其设置为小于 10 秒

$request = $client->get('http://test.com', [], ['timeout' => 10]);

【讨论】: