网站首页 » Swoole

协程编程注意事项

不能存在阻塞代码协程内代码的阻塞会导致协程调度器无法切换到另一个协程继续执行代码,所以我们绝不能在协程内存在阻塞代码,假设我们启动了 4 个 Worker 来处理 HTTP 请求(通常启动的 Worker 数量与 CPU 核心数一致或 2 倍),如果代码中存在阻塞,暂且理论的认为每个请求都会阻塞 1 秒,那么系统的 QPS 也将退化为 4/s ,这[...]

网站首页 » Swoole

协程是什么?

协程是什么?我们已经知道了协程可以很好的解决异步非阻塞系统的开发问题,那么协程本身到底是什么呢?从定义上来说,协程是一种轻量级的线程,由用户代码来调度和管理,而不是由操作系统内核来进行调度,也就是在用户态进行。可以直接的理解为就是一个非标准的线程实现,但什么时候切换由用户自己来实现,而不是由操作系统分配 CPU 时间决定。具体来说,Swoole 的[...]

网站首页 » Swoole

PHP-FPM的运作模式

在聊协程是什么之前,我们先聊聊传统 PHP-FPM 架构的运作模式,PHP-FPM 是一个多进程的 FastCGI 管理程序,是绝大多数 PHP 应用所使用的运行模式。假设我们使用 Nginx 提供 HTTP 服务(Apache 同理),所有客户端发起的请求最先抵达的都是 Nginx,然后 Nginx 通过 FastCGI 协议将请求转发给 PHP[...]

网站首页 » Swoole

使用easyswoole的spider组件实现定时抓取

使用easyswoole 的 spider组件实现定时抓取博客文章, 只做学术交流,不实际进行运用,如果造成不好的影响请及时联系我easyswoole spider 组件地址: 点击查看项目规划做一个定时爬虫程序,定时抓取大佬博客(大佬的博客的链接可在代码中看到)的文章发布到自己的博客上,每次抓取后,将最新的文章记录到文件,下次再进行抓取只抓取到上[...]

网站首页 » Swoole

Swoole 安装 Swoole 出现 Enable openssl support, require openssl library 的解决办法

试用easyswoole 官网的爬虫项目时, 提示PHP Fatal error: Uncaught SwooleCoroutineHttpClientException: you must configure with `enable-openssl` to support ssl connection in /Library/WebServe[...]

网站首页 » Swoole

easyswoole学习前必须了解的几个概念

类/函数重复定义新手非常容易犯这个错误,由于easySwoole是常驻内存的,所以加载类/函数定义的文件后不会释放。因此引入类/函数的php文件时必须要使用include_once或require_once,否则会发生cannot redeclare function/class 的致命错误。建议使用composer 做自动加载进程隔离与内存管理 [...]

网站首页 » Swoole

Hyperfcms Hyperfcms 安装

首次使用Hyperfcms安装过程遇坑全过程1. 下载代码从码云上直接git下来代码2.修改swoole 配置swoole.use_shortname = off 需要将检查swoole.use_shortname = on 修改成off. 到php.ini 文件中,随意找个位置添加 swoole.use_shortname = Off 即可(我是[...]

网站首页 » Swoole

mac 配置自带php环境及安装easyswoole

由于项目需要学习下easyswoole 框架, 奈何要求安装pcntl扩展,windows 无法安装pcntl扩展, 只能是借用公司的mac ,安装过程中还是遇到了一些问题,所以记录总结一下。mac 自带的php版本为7.1.6 , 如果不知道怎么看的同学,终端:php -vphp 的扩展包文件夹: /usr/lib/php/extensions/[...]