pcntl_fork之后PHP关闭连接

loading...


0

我试图通过api使用不同的进程获取一些数据来同时执行所有请求 .

它运行正常,但我在脚本中有很多内存泄漏(我使用共享内存段来存储每个进程获取的结果)

我用来创建共享内存段的代码看起来像这样(我只是将最小代码用于理解问题):

for ($i = 0; $i < 6; $i++)
{
    if (getmypid() == $parent_pid) {
        $process_pool[] = pcntl_fork();
        // Get the memory segment where the process set the status of data fetching and set it to KO
        if (getmypid() == $parent_pid) {
            //I am creating memory here
            echo '<br>i : ' . $i . ' mypid : ' . getmypid() . '<br>';
        }
    }
}

这是我得到的输出:

i:0 mypid:11128 i:1 mypid:11128 i:2 mypid:11128 i:3 mypid:11128 HTTP / 1.1 200 OK主持人:127.0.0.1:8000日期:星期一,2018年12月10日11:07:31 0000连接:关闭X-Powered-By:PHP / 7.2.2内容类型:text / html; charset = UTF-8 HTTP / 1.1 200 OK主机:127.0.0.1:8000日期:星期一,2018年12月10日11:07:31 0000连接:关闭X-Powered-By:PHP / 7.2.2内容类型:text / HTML; charset = UTF-8 i:0 mypid:11128 i:1 mypid:11128 HTTP / 1.1 200 OK Host:127.0.0.1:8000 Date:Mon,10 Dec 2018 11:07:34 0000 Connection:close X-Powered-By :PHP / 7.2.2内容类型:text / html; charset = UTF-8 i:0 mypid:11128 i:1 mypid:11128 i:2 mypid:11128 i:3 mypid:11128 i:4 mypid:11128 HTTP / 1.1 200 OK主持人:127.0.0.1:8000日期:星期一,201年12月10日11:07:34 0000连接:关闭X-Powered-By:PHP / 7.2.2内容类型:text / html; charset = UTF-8 i:0 mypid:11128 HTTP / 1.1 200 OK Host:127.0.0.1:8000 Date:Mon,10 Dec 2018 11:07:34 0000 Connection:close X-Powered-By:PHP / 7.2.2内容类型:text / html; charset = UTF-8 i:0 mypid:11128 i:1 mypid:11128 i:2 mypid:11128 HTTP / 1.1 200 OK主机:127.0.0.1:8000日期:星期一,2018年12月10日11:07:34 0000连接: close X-Powered-By:PHP / 7.2.2 Content-type:text / html; charset = UTF-8 i:0 mypid:11128 i:1 mypid:11128 i:2 mypid:11128 i:3 mypid:11128 i:4 mypid:11128 i:5 mypid:11128

很明显,问题来自连接因任何原因被关闭,这是什么以及如何解决?

谢谢你的帮助!

loading...

0回答

No Data

评论

暂时没有评论!