php多进程


php多进程

可以通过php-m查看,没安装的话需要重新编译php,加上参数tl,posix一般默认会有

场景:日常任务中,有时需要通过php脚本执行一些日志分析,队列处理等任务,当数据量比较大时,可以使用多进程来处理。

准备:php多进程需要tl,posix扩展支持,可以通过php-m查看,没安装的话需要重新编译php,加上参数tl,posix一般默认会有。

多进程实现只能在cli模式下,在web服务器环境下,会出现无法预期的结果,我测试报错:Calltoundefinedfunction:tl_fork()

一个错误tl_forkcausing“errno=32Brokenpipe”#474,看/phpredis/phpredis/issues/474

注意两点:如果是在循环中创建子进程,那么子进程中最后要exit,防止子进程进入循环。子进程中的打开连接不能拷贝,使用的还是主进程的,需要用多例模式。