swoole 协程channel乱测

channel和数组差不多,可以被用作队列,属性capacity是设置容量,isEmpty() isFull() 用来判断队列是空还是满,push()加入队列 pop()弹出队列

interface pusher
{function push($data);
}
#require 'redisconn.php';
class mypusher implements pusher
{protected $mychannel;protected $size=10;public function __construct(){$this->mychannel = new Swoole\Coroutine\Channel(10);$this->mylen = $this->mychannel->length();echo "容量".$this->mychannel->capacity.PHP_EOL;}public function push($data){if ($this->mychannel->isFull()){return 0;}else{//发送通知$this->mychannel->push($data);echo "当前元素个数".$this->mychannel->length();return 1;}}public function pop(){if($this->mychannel->isEmpty()){return 0;}else{echo "当前元素个数".$this->mychannel->length().PHP_EOL;var_dump($this->mychannel->pop());echo PHP_EOL."还剩元素个数".$this->mychannel->length().PHP_EOL;return 1;}}
}
go(function (){$thispusher = new mypusher();$thispusher->push(['name'=>'cj','age'=>20]);$thispusher->push(['name'=>'cpc','age'=>22]);$thispusher->push(['name'=>'xxd','age'=>40]);$thispusher->pop();$thispusher->pop();$thispusher->pop();});

测试结果:

容量10
当前元素个数1当前元素个数2当前元素个数3当前元素个数3
array(2) {["name"]=>string(2) "cj"["age"]=>int(20)
}还剩元素个数2
当前元素个数2
array(2) {["name"]=>string(3) "cpc"["age"]=>int(22)
}还剩元素个数1
当前元素个数1
array(2) {["name"]=>string(3) "xxd"["age"]=>int(40)
}还剩元素个数0
  • 实现一个redis连接池
class redispool
{protected $mypool;public function __construct($size){$this->mypool = new Swoole\Coroutine\Channel($size);for ($i=0;$i<$size;$i++){$redis = new Swoole\Coroutine\Redis();$redis->setOptions(['compatibility_mode' => true]);$rconn = $redis->connect('127.0.0.1',6379);if ($rconn == false){throw new \http\Exception\RuntimeException('Damn~ fail to connet redis-server');}else{$this->mypool->push($redis);}}}public function push($redis){$this->mypool->push($redis);}public function pop(){return $this->mypool->pop();}
}

 

转载于:https://www.cnblogs.com/saintdingspage/p/11276399.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rails 3:提高Ajax应用速度

Rails 3&#xff1a;提高Ajax应用速度 http://developer.51cto.com 2011-05-18 09:45 Stefan Siebel 51CTO 我要评论(0)我建立了一个列表网站&#xff0c;ListKungFo&#xff0c;其中大量使用了Ajax&#xff0c;目前为止网站运行非常良好。而过去两周里&#xff0c;我一直在…

[html] websocket和socket有什么区别?

[html] websocket和socket有什么区别&#xff1f; 1.Socket 是传输控制层的接口。用户可以通过 Socket 来操作底层 TCP/IP 协议族通信。 2.WebSocket 是一个完整应用层协议。 3.Socket 更灵活&#xff0c;WebSocket 更易用。 4.两者都能做即时通讯个人简介 我是歌谣&#xff…

opencv支持python3吗_Python3.4+opencv3

1、安装Python 3.4 for Windows 好的这好像没有什么可以说的 2、下载OpenCV 3和Numpy(OpenCV依赖Numpy库) 大家在这里就出了问题。如果使用直接使用pip install pyopencv安装一定会出错。这里使用了Python界活雷锋封装的安装包&#xff0c;大家根据自己的系统下载&#xff1a; …

Python之浅谈运算符

目录 格式化输出的三种方式基本运算符流程控制格式化输出的三种方式 运算符的语义取决于其操作数的类型 第一种格式化方式&#xff08;3.0&#xff09; name Tim height 170 weight 120 print(My name is:%s,my height is:%s,my weight is:%s%{name,height,weight})第二种格…

[html] websocket和http有什么区别?

[html] websocket和http有什么区别&#xff1f; WebSocket是双向的&#xff0c;在客户端-服务器通信的场景中使用的全双工协议&#xff0c;与HTTP不同&#xff0c;它以ws://或wss://开头。 HTTP是单向的&#xff0c;客户端发送请求&#xff0c;服务器发送响应。个人简介 我是…

Socketpair 简介

socketpair - a slight generalization of pipes used for two-way stream communication. 以下内容来自&#xff1a;匠意雕码 http://my.oschina.net/zengsai/blog/12583 今天用了一个从没玩过的socket函数socketpair()&#xff0c;它的作用是在进程内创建一对sock连接。乍一看…

cacti安装配置详解_MySQL实战001:8.0免安装版服务配置详解

首先我们需要先下载MySQL的安装包&#xff0c;MYSQL官方下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/&#xff0c;这里我下载的是MySQL Community Server 8.0.15版本&#xff0c;以前MySQL还有安装版&#xff0c;现在都是压缩版&#xff0c;解压之后将环境配置…

HttpServletRequest简述

HttpServletRequest简述 HttpServletRequest httpServletRequest (HttpServletRequest) request;/*getRequestURL方法返回客户端发出请求时的完整URL。getRequestURI方法返回请求行中的资源名部分。getQueryString 方法返回请求行中的参数部分。getRemoteAddr方法返回发出请求…

[html] 图片上传时实现本地预览功能的原理是什么?

[html] 图片上传时实现本地预览功能的原理是什么&#xff1f; 通过HTML5 File API读取用户上传的图片&#xff0c;生成一个image对象显示到页面个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录…

推荐两个检索和分类小工具Carrot2 OSS

Carrot2 Carrot2是一个开源搜索结果分类引擎。它能够自动把搜索结果组织成一些专题分类。Carrot2提供的一个架构能够从各种搜索引擎&#xff08;YahooAPI、GoogleAPI、MSN Search API、eTools Meta Search、Alexa Web Search、PubMed、OpenSearch、Lucene index、SOLR&#xff…

Eclipse最常用快捷键

Alt← 前一个编辑的页面 Alt→ 下一个编辑的页面 AltEnter 显示当前选择文件的属性 CtrlF11运行Run As CtrlM 当前窗口最大化 CtrlF7 视窗口切换 CtrlF8 模式切换 CtrlQ 定位到最后编辑的地方 CtrlL 定位在具体某行 CtrlK 选中的Word快速定位到下一个 ctrl.及ctrl1 当某行出错时…

[html] input如何在各个浏览器下保持UI统一?

[html] input如何在各个浏览器下保持UI统一&#xff1f; .ibutton { padding: 3px 15px; *padding: 0 15px; *height: 24px; font-size: 12px; text-align: center; text-shadow: #CF510B 0 1px 0; border:1px solid #ec5c0d; border-radius: 2px; background: #FC750A; backg…

11.27 如何选择具有某一角色的当事人?

/// <summary> ///根据当事人挡任的角色名称、当事人名称、名称拼音、身份证号模糊查询当事人 /// </summary> /// <param name"RoleName">角色名称</param> /// <param name"Name">当事人名称</param> /// <param…

python整数序列求和_Python从菜鸟到高手(14):序列的加法和乘法

1 序列的加法 序列也可以相加&#xff0c;但要注意&#xff0c;这里的相加&#xff0c;并不是相对应的序列元素值相加&#xff0c;而是序列首尾相接。由于字符串属于字符序列&#xff0c;所以字符串相加也可以看做是序列相加。但一个字符串不能和一个序列相加&#xff0c;否则会…

mysql xtrabackup 遭遇严重bug

我们的mysql 备份系统遭遇严重bug源于 开源软件 xtrabackup 的一个bug https://bugs.launchpad.net/percona-xtrabackup/bug/722638之前我们的大规模部署都没有遇到这问题。在做计数器转mysql 后&#xff0c;我们部署了备份系统&#xff0c;屡屡备份失败&#xff0c;于是决定彻…

[html] 能否做到禁止打印页面?如果可以那要怎么做?

[html] 能否做到禁止打印页面&#xff1f;如果可以那要怎么做&#xff1f; document.onbeforeprint function(){ return false; };个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一…

laydate时间控件有时候无效_新角度,如何无效没用地听课

嗨喽&#xff0c;大家好。这一期我想向大家展示一下如何无效地听课。1.上课的时候&#xff0c;全程集中注意力&#xff0c;每一秒都不能放松&#xff0c;使自己的大脑保持高度紧张中。我们这么年轻&#xff0c;精神充沛得很&#xff0c;只要累不死就往死里学。 2.下课的时候也不…

[html] 跨标签页的通讯方式有哪些

[html] 跨标签页的通讯方式有哪些 iframe document.name postMessage个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

让IE和Firefox(包括chrome)浏览器默认产生滚动条的滚动槽

html{overflow-y:scroll;}转载于:https://www.cnblogs.com/yuchav/archive/2011/10/19/2217652.html

Nike Air Jordan Sneakers

http://blog.tangcs.com/2009/05/27/nike-air-jordan-sneakers/转载于:https://www.cnblogs.com/WarrenTang/articles/1490574.html