SWOFT之进程池及单开进程
适用:生产者、消费者队列。进程池一般用于需要程序一直运行的场景,比如队列消费,数据计算。Swoft 框架中,基于 Swoole 进程池模型再次封装,便于开发者快速简单的使用进程池。
进程池配置
组件安装成功后,默认不需要配置也可以使用,配置如下:
app/bean.php
return [
'processPool' => [
'class' => \Swoft\Process\ProcessPool::class,
'workerNum' => 3
]
];
workerNum
worker 进程数ipcType
IPC类型coroutine
是否开启协程,默认是开启-
worker
进程必须实现Swoft\Process\Contract\ProcessInterface
接口
开发者业务必须自己实现类似while(true)
逻辑;redis队列作为消费者模型使用时,判断当队列消息不为空时执行业务逻辑以代替 while(true) 逻辑 ,如主动发送消息给客户端。@Process
注解workerId=0
表示第1个进程绑定这个处理逻辑流程
启动进程池
配置和声明工作进程完成后,就是启动进程池,启动进程池和其它服务启动很类似
前台启动
php bin/swoft process:start
后台启动
bin/swoft process:start -d
重启所有 worker 进程
php bin/swoft process:reload
停止服务
php bin/swoft process:stop
生产者、消费者模式

