thinkphp-swoole 理解swoole进程模式

时间:2024-03-27 22:56:42

理解swoole进程模式

1.守护进程的开启
config/swoole.php daemonize false守护进程(是否后台运行)关闭 true 开启
2.
进程处理
thinkphp-swoole 理解swoole进程模式
coroutine enable 设置成false (关闭协程)
开启了1个进程关闭了协程
测试结果
同时请求2次,会发现第一个处理完成后才处理第二个请求,不是同时处理两个
进程号 - 1003 start时间:1585402323—end时间:1585402328—耗时:5
进程号 - 1003 start时间:1585402328—end时间:1585402333—耗时:5
两个都是同时请求的,第一个请求完成后才处理第二个请求,所以第二个尾数是328开始,(理解为队列)
测试2
在关闭协程的同时开启2个进程 worker_num => 2
测试结果
同时请求3次
前两次请求是同时完成,而第3次请求是等前面两个进程其中的一个完成后处理的(谁先完成的谁去处理)
在linux中可查看
thinkphp-swoole 理解swoole进程模式
1.开启了2个进程
2.开启一个进程
启动php think swoole后 程序会开启(拿图例2讲)
18219 为master 主进程(pstree 中对应的18513 因为重启了think-swoole 进程号变更了)
18220 为manager管理进程 (pstree 中对应的18514)
18223 task 进程(先不用管,在后面会介绍)(pstree 中对应的18516)
18224 worker 工作进程 (可对个如图例1中就可开启多个)(pstree 中对应的18517)
18225 开启swoole进程 (pstree 中对应的18518)
pstree -p 进程号 (查看进程结构)
thinkphp-swoole 理解swoole进程模式
这里可以查看到
mater 主进程下是 manager管理进程 之后manager下面是工作进程18517
(暂时不管18515 – 18516 ) 18518 是启动进程
18515是帮助管理进程分配任务的一个线程