![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
swoole
yilegel
这里不会有详细、高深的东西。只是把别人的东西实践了一次,再加些自己的理解。
展开
-
什么叫多进程编程~~~深刻体会
swoole中process的应用(用过协程后再用才有体会)原创 2020-10-26 20:58:33 · 159 阅读 · 0 评论 -
hyperf学习过程~~~延展学习积累
1、中文乱码swoole里:Swoole\Http\Response->header(string $key, string $value, bool $ucwords = true);hyperf里面操作:return $response->withHeader('Content-Type', 'text/html;charset=utf-8')->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(ne原创 2020-10-26 12:22:49 · 1054 阅读 · 0 评论 -
一次句话明白hyperf为什么这么多Interface,且没有用new和具体的实例。
每个组件都有个ConfigProvider->__invoke()->depandencies就这一句话,把其他框架的设计思维统统甩一条街。就这么一句话把高级框架的高级点全部包含:依赖注入面对接口编程设计模式-工厂模式class ConfigProvider{ public function __invoke(): array { return [ 'dependencies' => [原创 2020-10-23 16:22:52 · 716 阅读 · 0 评论 -
websocket的本质。 websocket一直返回200状态码、504码,搞了一下午。下次遇到知道就是后端的问题。
websocket请求流程:1、ws原本也是http请求在服务器转换了一次。 Switching Protocols切换协议因为ws的header头里面有两个重要参数 Upgrade、Connection2、因为websocket是继承的http服务器,所以路由不对会返回200, 完全没有router或完全错误时50x状态码...原创 2020-10-19 21:12:54 · 6111 阅读 · 7 评论 -
swoole学习的细节积累
一、Http继承Tcp后,不能使用onConnect/onReceive二、tcp怎么长连接(只返回一次)//怎么让客户端保持长链接???设置长超时 + 服务端长时间不返回信息(sleep()函数模拟)三、由 一 可知: 有继承关系的只使用最后一个子类 是很强大类,包含功能最多。请在子类中放心使用父类的东西四、...原创 2020-10-12 19:05:26 · 1305 阅读 · 0 评论 -
swoole的官网怎么学习。彻底理清swoole架构
欠缺的地方:1、给一段示例代码不知道怎么用。这个网站给了一个思路:初学者有很多考虑不到的地方,需要跟着牛人深挖这些“示例”。2、官方的代码只是给出了部分功能、和一些使用思路。swoole的代码启动之后就不能改了。onTask()和Swoole\Process创建的进程,在启动之后就固定了具有什么功能(比如:分析CSV文件、搞mysql、redis等),难道一个任务启动一批进程?那得多少进程?(官网给出的例子好像都是一个进程一个任务,且都是在启动的时候就把业务流程做完了,这可能吗?)。所以:A、固原创 2020-10-10 19:18:40 · 1834 阅读 · 0 评论 -
线程是来干嘛的
PHP为什么没有线程,了解这个就了解了大半个编程世界。所以:多看别人的博客、论坛、讨论(这个最深度、全面)。参考:php本身不支持多线程的原因是什么,java为什么可以,php就不行?吴子棋的回答我非常赞同。php的多线程是做后台任务物理的。以前我也一直纠结于PHP实现多线程,但多线程对PHP内核以及整个生态的关联太大了,对于 php-fpm 的 web 来说,多线程其实没多大意义。只有在后台运行复杂的任务时才有意义,不同语言不同的特性。不要非得在PHP上追求go的并发特性。可以原创 2020-10-09 17:46:03 · 418 阅读 · 0 评论 -
一图理解进程、线程。【结合真是生活(不仅仅是懵逼、不实际的概念)】
总结:个人理解:多进程、协程的区别:相同点:都是达到并发的处理很多任务的目的不同点:1、达到并发:协程是一个进程。进程必须多个。2、没有等待、阻塞的情况下,协程没毛用。因为CPU一直在运行,没有空闲时间搞什么并发去。参照物就是结合实际:参照物很重要:php-fpm或swoole的多worker,都是多进程。这里的多,是针对网络上大批量的请求而言的。处于网络请求阶段的多,处理很多网络请求。而我现在是要多进程处理一个文件。这个多的时间点是:某一个网络请求后,目的:想要再启动多个进程分开处原创 2020-10-09 16:39:14 · 251 阅读 · 0 评论 -
easyswoole的核心代码-看懂请求到返回流程
重点:swoole是常驻内存。cli命令启动后所有的程序都在内存了。如果要调试,需在改代码后重启,并在命令行中查看(非浏览器中)。前半段的启动(后台的9501端口的启动)没有展示,很容易看出来就算了。内存管理 = 生命周期 = 框架流程 = 编程疑问:类、变量都是什么时候加载到内存中的???一图看完流程:...原创 2020-09-15 18:52:28 · 336 阅读 · 0 评论 -
内存管理、内存泄漏检查
内存指标:如何正确查看进程的内存占用Linux命令:查看RSS:ps -aux | grep swoole 第6列 RSStop 的RES查看USS:smem -M php | grep swoole原创 2020-09-15 17:42:25 · 261 阅读 · 0 评论 -
easyswoole的核心文件
<?php/** * Created by PhpStorm. * User: yf * Date: 2018/5/28 * Time: 下午6:07 */namespace EasySwoole\EasySwoole;use EasySwoole\Component\Di;use EasySwoole\Component\Process\AbstractProcess;use EasySwoole\Component\Process\Manager;use EasySw.原创 2020-09-14 20:45:51 · 212 阅读 · 0 评论