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

我要开发同款
匿名用户2019年04月15日
90阅读

技术信息

开源地址
https://gitee.com/yurunsoft/swoole-co-pool
授权协议
MIT

作品详情

介绍

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

原理

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

使用 Swoole\Coroutie\Chael 实现工作队列。

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

安装

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

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

然后执行composerupdate命令。

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

详见 test/test.php

功能介绍

介绍 Swoole 协程工作池,它可以限定你的同时工作协程数量,并且减少协程频繁创建销毁的损耗。 原理 事先定好协程数量和工作队列长度,将所有工作协程事先创建好。 使用 Swoole\Corou...

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

评论