2018年8月22日
摘要: 测试的代码主要功能:开启一个tcp服务器。然后设置了管理进程和工作进程start的回调进行更名。设置了pid_file保存了服务端启动的mast进程。 开启服务器后 查看进程,在server->start 后,拉起workNum+2(master,manager进程)。 然后查看pid_file里的 阅读全文
posted @ 2018-08-22 20:19 invokermiracle 阅读(2104) 评论(0) 推荐(0) 编辑
摘要: 网络通信过程中,可能会出现分包和合包的情况。具体情况如https://wiki.swoole.com/wiki/page/484.html文档所讲的。这里测试了下固定包头的协议。示例代码如下 1.解包封装的方法 2.服务端 tcpServer.php 启动服务端 3 客户端 tcpClient.ph 阅读全文
posted @ 2018-08-22 18:51 invokermiracle 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 假设线上有一段php脚本,突然在某天出问题了,不处理但是进程没有退出。这种情况可能是异常休眠或者是有段死循环代码,但是我们怎么定位呢,我们这个时候最想知道的应该是这个脚本在此刻在做什么吧。这个是gdb+zbacktrace就有用了 首先随便写一个测试脚本test.php,里面就写一个sleep函数, 阅读全文
posted @ 2018-08-22 11:29 invokermiracle 阅读(479) 评论(0) 推荐(0) 编辑
  2018年8月20日
摘要: PHP的date函数以及strtotime函数是很强大的。基本上围绕这2个函数就能处理绝大多数日常开发中日期的处理。 假设有一个需求是按周,月获取最近7周和最近7月的查询。那么我们肯定要划分出时间区间。 #先按月划分,获取上个月 我们一开始肯定想到这多简单啊 但是有没有想过如果是发生在7月的31号( 阅读全文
posted @ 2018-08-20 16:12 invokermiracle 阅读(316) 评论(0) 推荐(0) 编辑
  2018年8月7日
摘要: 前文提到的在系统设置Cache组件 Cache::getInstance()的时候,会去调用processManager去创建Cache的进程,然后以管道通信的方式进行设置缓存和获取缓存。 Cache是以单例模式实现的。构造器会进行如下操作 ProcessManager::getInstance() 阅读全文
posted @ 2018-08-07 18:57 invokermiracle 阅读(1333) 评论(0) 推荐(0) 编辑
摘要: 前文连接,讲了es是如何启动swoole服务的。 里面有一个工具类TableManager。这个类为了处理进程间数据共享。是对swoole_table的一层封装swoole_table一个基于共享内存和锁实现的超高性能,并发数据结构。用于解决多进程/多线程数据共享和同步加锁问题。 TableMana 阅读全文
posted @ 2018-08-07 10:54 invokermiracle 阅读(1162) 评论(0) 推荐(0) 编辑
  2018年8月6日
摘要: 前文连接,阅读的时候最好参照EasySwoole2.1.2的源码 这里实际调用的是Core的start方法ServerManager::getInstance()->start(); 这个方法主要是启动swoole服务的 在这块代码里主要是核心,是在swoole执行start服务前设置相关配置以及配 阅读全文
posted @ 2018-08-06 16:28 invokermiracle 阅读(2115) 评论(0) 推荐(0) 编辑
摘要: 分析easyswoole源码 1以启动为例 //检查是否已经安装 installCheck();//检查锁文件是否存在,不存在结束 //启动服务 serverStart showLogo();//显示logo $conf = Conf::getInstance();//获取config单例 $ins 阅读全文
posted @ 2018-08-06 14:51 invokermiracle 阅读(1868) 评论(0) 推荐(0) 编辑
  2018年7月23日
摘要: 在官网https://dom4j.github.io/下载最新的dom4j的jar包,以及配合xpath解析的http://central.maven.org/maven2/jaxen/jaxen/1.1.6/的jaxen.jar包。 总的来说其实要掌握的是,node和element和attribu 阅读全文
posted @ 2018-07-23 14:40 invokermiracle 阅读(186) 评论(0) 推荐(0) 编辑
  2018年7月18日
摘要: new 接口就会发生很有意思的现象 new 接口 其实是生成了一个匿名的已经实现过接口抽象方法的类。我们用反编译工具发现这段代码生成了如下几个class文件 B.class 是接口 InnerClassDemo是有mian方法的入口类 OutClass是我们的实际操作的类。那么这个InnerClas 阅读全文
posted @ 2018-07-18 10:39 invokermiracle 阅读(117) 评论(0) 推荐(0) 编辑