关于php多进程优化

目前有一个需求,需要多进程执行。用 pcntl_fork 实现的。
现在已经需要 fork 500 多个子进程了,后续还会继续增加。
pcntl_fork 子进程越多,对于子进程的回收管理出现问题的可能性会增加。
有什么其他的方法可以对这种情况做优化吗?
swoole 用不了,项目框架比较老旧,且定义了 go 方法,和 swoole 的函数冲突,全局修改代价太大。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

我觉得按你的需求 swoole 是比较合适的 线上单独在拉一个 php 版本出来就行了 而且你说的 go 函数也和 swoole 不冲突 ,go 只是一个语法糖而已,关闭 php 的短语就行

7个月前 评论
轻语过往 (楼主) 7个月前
讨论数量: 23

把这份业务拆出来用 swoole 或者是 go 之类的去处理不行吗? 即时交互可以走接口,异步交互可以走消息队列

7个月前 评论
轻语过往 (楼主) 7个月前
令龙家的小道 (作者) 7个月前
轻语过往 (楼主) 7个月前
令龙家的小道 (作者) 7个月前
轻语过往 (楼主) 7个月前

我觉得按你的需求 swoole 是比较合适的 线上单独在拉一个 php 版本出来就行了 而且你说的 go 函数也和 swoole 不冲突 ,go 只是一个语法糖而已,关闭 php 的短语就行

7个月前 评论
轻语过往 (楼主) 7个月前

workerman, supervisor, 或者 spatie/async 啊

7个月前 评论
轻语过往 (楼主) 7个月前
JaguarJack

你这啥场景?fork 之后自动交给系统回收就行了。既然需要管理,master worker 模式,就用 workerman 就行了啊,他好像支持进程动态扩容的

7个月前 评论
轻语过往 (楼主) 7个月前
JaguarJack (作者) 7个月前
Jyunwaa

Swoole 用不了还有 Swow 🤣

所有 方法常量均置于 Swow 命名空间之下,不会污染原始环境(如果你的项目已经有 Swow 这个命名空间当我没说🤣)

7个月前 评论
轻语过往 (楼主) 7个月前
sanders

楼主讲一下具体需求和要部署的环境。啥配置的机器一下子要跑 500 个子进程?每个进程的负载大概能到多少?预计占多少内存?需不需要进程池?

7个月前 评论
轻语过往 (楼主) 7个月前
轻语过往 (楼主) 7个月前
ilvsx 7个月前

说说 对于子进程的回收管理出现问题的可能性会增加 目前遇到了什么问题?

7个月前 评论
轻语过往 (楼主) 7个月前
cclilshy (作者) 7个月前
轻语过往 (楼主) 7个月前