swoole-co-pool Swoole 协程工作池开源项目

我要开发同款
匿名用户2019年04月15日
49阅读
开发技术PHP
所属分类程序开发、微服务框架
授权协议MIT

作品详情

介绍

Swoole协程工作池,它可以限定你的同时工作协程数量,并且减少协程频繁创建销毁的损耗。

原理

事先定好协程数量和工作队列长度,将所有工作协程事先创建好。

使用 Swoole\Coroutine\Channel 实现工作队列。

在每个工作协程中,Swoole\Coroutine\Channel->pop()。一旦有新的任务 push 进队列,就会有一个工作协程被唤醒。

安装

在您的composer.json中加入配置:

{"require":{"yurunsoft/swoole-co-pool":"~1.0"}}

然后执行composerupdate命令。

使用useYurun\Swoole\CoPool\CoPool;useYurun\Swoole\CoPool\Interfaces\ICoTask;useYurun\Swoole\CoPool\Interfaces\ITaskParam;$coCount=10;//同时工作协程数$queueLength=1024;//队列长度$pool=newCoPool($coCount,$queueLength,//定义任务匿名类,当然你也可以定义成普通类,传入完整类名newclassimplementsICoTask{/***执行任务**@paramITaskParam$param*@returnmixed*/publicfunctionrun(ITaskParam$param){//执行任务returntrue;//返回任务执行结果,非必须}});$data=1;//可以传递任何参数//增加任务,并挂起协程等待返回任务执行结果$result=$pool->addTask($data);//增加任务,异步回调$result=$pool->addTask($data,function(ITaskParam$param,$data){//异步回调});代码示例

详见 test/test.php

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论