关于php多进程优化

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

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

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

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

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

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

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

workerman, supervisor, 或者spatie/async啊

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

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

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

Swoole 用不了还有 Swow 🤣

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

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

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

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

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!