php多进程框架:MultiThread

jopen 8年前

php基于pcntl扩展实现的多进程框架。

有以下几种优点:
1、子进程数量的控制
2、钩子形式的运行子进程,方便代码实现
3、3种不同的方式导入任务(数组输入、运行次数输入、动态加载)
4、子进程运行结果的收集(3种收集方式:文件、System V message queue、redis,推荐使用redis)
5、支持对子进程返回结果处理,并通过钩子方式来定义自己的处理过程

注意事项:
1、建议不开启子进程返回结果,因为这样需要使用中间件来传递结果影响效率,能在子进程中处理尽量在子进程中处理
2、使用System V message queue为中间件的注意队列的总大小和单个消息的大小,如果返回结果大小超过单个消息的大小将会发生消息失败
3、非要使用消息中间件,建议使用redis
4、_fork($arg) 方法需要有输入参数,在子进程任务输入方式是次数时,$arg为null
5、_addTask() 方法返回的一定为数组,里面的元素对应 _fork($arg) 中的$arg
6、在开启子进程结果处理方法时,MultiThread 的 run() 方法是不会有返回值
7、注意php需要的扩展是否安装,基本扩展需要有pcntl。同时也注意中间件的扩展是否安装,如果使用的话

项目主页:http://www.open-open.com/lib/view/home/1379473961115