bean.php中添加一下配置

'processPool' => [// 进程处理类,必填'class' => \Swoft\Process\ProcessPool::class,// 进程数,进程id从排序,必填'workerNum' => 3,// IPC类型,进程间通信类型,参数参考swoole,选填'ipcType' => SWOOLE_IPC_NONE// 是否开启协程,默认是开启,选填'coroutine'  => true
]

进程处理文件位于App/Process

必须继承ProcessInterface
使用注释@Process标记
workerId=0workerId={1,2}选择进程id,id从0开始,可以安排多个进程;workerId 如果不写默认情况,当前程序流程绑定到其它未绑定的进程

Worker1Process.php示例

<?php declare(strict_types=1);
/*** This file is part of Swoft.** @link     https://swoft.org* @document https://swoft.org/docs* @contact  group@swoft.org* @license  https://github.com/swoft-cloud/swoft/blob/master/LICENSE*/namespace App\Process;use Swoft\Amqp\Amqp;
use Swoft\Log\Helper\CLog;
use Swoft\Process\Annotation\Mapping\Process;
use Swoft\Process\Contract\ProcessInterface;
use Swoole\Coroutine;
use Swoole\Process\Pool;/*** Class Worker1Process** @since 2.0** @Process(workerId=0)*/
class Worker1Process implements ProcessInterface
{/*** @param Pool $pool* @param int  $workerId*/public function run(Pool $pool, int $workerId): void{while (true) {CLog::info('worker-' . $workerId);CLog::info('run method: '.__METHOD__);$channel = Amqp::channel('channel_1');$channel->listen(function ($message){//$message:数据结构(json_encode)之后//{"body":"hey!-----9","body_size":10,"is_truncated":false,"content_encoding":null,"delivery_info":{"channel":{"callbacks":{"amq.ctag-epGZgfHej3YrjZk2FBvp0A":{}}},"delivery_tag":99,"redelivered":false,"exchange":"exchange_test","routing_key":"example-test-routing-key","consumer_tag":"amq.ctag-epGZgfHej3YrjZk2FBvp0A"}}CLog::info('message:'. json_encode($message));});$name = 'steve';vdump(context()->getResponse()->withContent('Hello' . ($name === '' ? '' : ", {$name}")));Coroutine::sleep(3);}}
}

进程单独启动

// 启动
php bin/swoft process:start
// 后台
php bin/swoft process:start -d
// 重启,进程池全部重启
php bin/swoft process:reload
// 停止,进程池全部停止
php bin/swoft process:stop

swoft自定义进程相关推荐

  1. multiprocessing创建自定义进程类

    1.继承Process 2.编写自己的__init__,同时加载父类init方法 3.重写run方法,可以通过生成的对象调用start自动运行 from multiprocessing import ...

  2. Python中的自定义进程和进程池

    Python中的自定义进程和进程池 文章目录 Python中的自定义进程和进程池 一.自定义进程 1.步骤: 2.例 进程池 1.概念 2.介绍--multiprocess.Pool 3.非阻塞式进程 ...

  3. Python 进程 自定义进程子类 继承

    """自定义进程子类""" from multiprocessing import Process, current_process imp ...

  4. Python进程池及自定义进程

    Python进程池及自定义进程 微信关注公众号:夜寒信息 致力于为每一位用户免费提供更优质技术帮助与资源供给,感谢支持!     这次给大家分享Python的进程池及自定义进程,由于Python基础已 ...

  5. 阿里云ECS主机自定义进程监控

    由于业务的关系我们用的是阿里云的ECS主机,需要对业务进程需要监控,查看后发现阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置 ...

  6. swoft2 小白教程系列-进程篇

    swoft2 自定义用户进程来定期执行用户自定义任务 swoft2 支持进程池解决多进程并发执行用户自定义任务 swoft2 进程详解 多进程程序设计能解决很多有意义的问题,程序的主进程运行核心任务, ...

  7. php swoft 路由,Swoft 源码解读

    PHP 里面的 yii/laravel 框架算是非常「重」的了. 这里的 重 先不具体到 性能 层面, 主要是框架的设计思想和框架集成的服务, 让框架可以既可以快速解决很多问题, 又可以轻松扩展. P ...

  8. python3 进程

    python3 进程 1.开进程的两种方式: 1. 使用内置的进程 #!/usr/bin/env python #coding:utf-8 #Created by Andy @ 2017/9/17fr ...

  9. 服务器怎么查看性能,查看服务器进程性能查看

    查看服务器进程性能查看 内容精选 换一换 分析辅助软件是一款支持部署到多台服务器目标环境上,实现对整个业务集群的数据采集和优化的组件.已成功登录Java性能分析.待安装分析辅助软件的服务器已开启ssh ...

最新文章

  1. Microsoft SQL Server 2008 express试用心得
  2. MathType中的一些精彩技巧
  3. 博士申请 | ​麦吉尔大学智能自动化实验招收2022年秋季入学全奖博士生
  4. php删除一张表数据的时候 把另一张表的数据也删除,剔除第一张表的数据时,修改第二张表的相关字段的数值...
  5. python 字符串 4位一组_Python基础4- 字符串
  6. 2017.9.2 最大半联通子图 思考记录
  7. iOS 转盘动画效果实现
  8. 如何理性看待 5G 速率提升?
  9. OpenCV Laplacian 拉普拉斯变换
  10. OSG 初始化为非全屏窗口
  11. 惯性导航算法(二)-欧拉角法(下)+方向余弦矩阵(上)
  12. 微信视频号如何申请认证,流程是什么?
  13. 信息流广告如何操作?(含CPC、OCPC、CPM、eCPM、CTR等)
  14. VR虚拟现实、AR增强现实、MR混合现实三者到底有什么区别?
  15. 领先三星、华为,全球首款可折叠柔性屏手机惊艳上市
  16. 将当前容器保存为本地镜像
  17. IC前后端001:高扇出的危害
  18. 命令反查dns,命令ip地址dns反查
  19. JSJ——java基本概念二
  20. awk分析话单列子 tcp连接失败率,及失败连接的topN

热门文章

  1. 如何让掘金的头像变成gif动图
  2. 中国高铁-国家标准(TB标准)
  3. UE4实现多国语言翻译
  4. 浅谈消防设备电源监控系统的设计与应用
  5. Rasa入门——AI助手和聊天机器人
  6. 【模拟电路】仪表放大器分析
  7. 响铃:厉害了中国古人!原来,我们3000年前就有了机器人
  8. #Pythonyyds#python实现——最优化算法
  9. 客户端与服务器端交互原理
  10. 【生活必备知识】不同年龄段男性/女性必做的体检项目