Symfony Http 客户端:循环请求时内存泄漏

Symfony Http client: memory leak when requesting in loop

提问人:Capybarro 提问时间:11/8/2023 更新时间:11/8/2023 访问量:28

问:

我同时向某个端点发送大量请求,以 100 个请求分块。

我正在使用Symfony HTTP客户端(它被配置为curl)。

foreach ($generator as $chunk) {
    $responses = [];

    foreach ($chunkBy100 as $request) {
        $responses[] = $client->request('POST', $url, $headers, $body);
    }

    foreach ($responses as $response) {
        // get response content
    }
    dump(memory_get_usage);
}

但是每次迭代时,我的脚本内存使用量都会越来越多,直到我出现内存异常为止。

有人知道这里问题的根源是什么吗?

我正在按照symfony文档中所写的方式做所有事情,但也许我忘了在某个地方发布响应?

php symfony curl

评论

0赞 KIKO Software 11/8/2023
您的问题中几乎没有实际代码,因此很难看到您的实际代码是做什么的。通常,您会发布一个最小的、可重现的问题示例,以便我们进行调查。就目前而言,我想这可能是并发请求过多的问题。也许简单的睡眠(1)会有所帮助?但这只是一个疯狂的猜测,可能是你想避免的事情。
0赞 jhmckimm 11/8/2023
你的回答有多大?将所有响应存储在数组中,如果它们的大小适中,那么明天就会像没有内存一样消耗内存。
0赞 Capybarro 11/8/2023
但是那个代码是我得到的一切:)我把它简化回了基础,但仍然有越来越多的内存。我想也许有人有类似的经历,可以告诉我去哪里看。响应非常大,但是在每个块之后我重置数组,所以我认为问题出在其他地方。
0赞 john Smith 11/10/2023
好吧,根本问题似乎出在你在那里使用实体管理器吗?这段代码是由CLI运行的吗?// get response content

答: 暂无答案