适用:生产者、消费者队列。进程池一般用于需要程序一直运行的场景,比如队列消费,数据计算。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  

生产者、消费者模式

生产者模式
消费者模式

发表评论

电子邮件地址不会被公开。 必填项已用*标注