当前位置: 首页 > news >正文

记一次 easyswoole 热重载失效复盘 grpc扩展惹的祸

首先看一下运行环境


swoole version                4.8.11
php version                   7.4.33
easyswoole version            3.4.6

 在easyswoole 的入口文件  如下:

<?php
namespace EasySwoole\EasySwoole;
use App\WebSocket\WebSocketEvents;
use App\WebSocket\WebSocketParser;
use EasySwoole\Component\Process\Manager;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Config;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use \EasySwoole\Component\Di;class EasySwooleEvent implements Event
{public static function initialize(){date_default_timezone_set('Asia/Shanghai');// 加载Config下所有配置self::loadConfig();}public static function mainServerCreate(EventRegister $register){// 热重载监视器$hotReloadOptions = new \EasySwoole\HotReload\HotReloadOptions;$hotReload = new \EasySwoole\HotReload\HotReload($hotReloadOptions);$hotReloadOptions->setMonitorFolder([EASYSWOOLE_ROOT . '/App']);$server = ServerManager::getInstance()->getSwooleServer();$hotReload->attachToServer($server);// websocket注册self::InitWebSocket($register);// 注册 FastCache缓存$register->add($register::onWorkerStart, function (\swoole_server $server, int $workerId) {});}public static function InitWebSocket(EventRegister $register){$config = new \EasySwoole\Socket\Config();$config->setType($config::WEB_SOCKET);$config->setParser(WebSocketParser::class);$dispatcher = new \EasySwoole\Socket\Dispatcher($config);$config->setOnExceptionHandler(function (\Swoole\Server $server,\Throwable $throwable,string $raw,\EasySwoole\Socket\Client\WebSocket $client,\EasySwoole\Socket\Bean\Response $response) {$response->setMessage('system error!' . $throwable->getMessage());$response->setStatus($response::STATUS_RESPONSE_AND_CLOSE);});$register->set($register::onMessage,function (\Swoole\Websocket\Server $server, \Swoole\Websocket\Frame $frame) use ($dispatcher) {$dispatcher->dispatch($server, $frame->data, $frame);});// 注册服务事件$register->add(EventRegister::onOpen, [WebSocketEvents::class, 'onOpen']);$register->add(EventRegister::onClose, [WebSocketEvents::class, 'onClose']);}/*** Description:加载自定义配置文件*/public static function loadConfig(){Config::getInstance()->loadDir(EASYSWOOLE_ROOT . '/Config');}}

启动服务  命令:

php easyswoole server start

此处我监听的是App 目录   

当我修改了App目录下任意一个文件 保存后 

FileScanner hot reload initialize at Linux in PID 878774

但easyswoole 监听某个目录 不生效了

真的是  我查了半天,包括做减法,只保留easyswoole 框架最小代码,结果还是不行,突然想起前几天编译了php 的一个grpc 的扩展  于是我猜测会不会是php 环境所导致。

于是乎  修改php.ini  去掉grpc.so 的扩展  

然后在重启php-fpm 后

重启easyswoole 服务后

修改文件后出现   HOT_RELOAD: reloaded at 1704433881

热重载生效了   到现在还没搞明白啥情况啊    晕了 

http://www.lryc.cn/news/278113.html

相关文章:

  • 存储过程从表中获取数据库名称
  • .NET 反射的介绍和简单应用
  • 在drawio中使用BPMN2.0绘制详细的业务流程图和编排模型
  • GO——defer函数
  • 【UE Niagara学习笔记】06 - 制作火焰喷射过程中飞舞的火星
  • 机器学习笔记一之入门概念
  • 用于脚本支持的 CSS 媒体查询
  • 【HBase】——整合Phoenix
  • 【操作系统xv6】学习记录5--实验1 Lab: Xv6 and Unix utilities
  • Python从入门到网络爬虫(控制语句详解)
  • transbigdata笔记:数据预处理
  • java中解码和编码出现乱码原因
  • 60V降压3.3V稳压芯片 60V降压5V稳压芯片60V降压12V稳压芯片
  • 01第一个Mybatis程序+引入Junit+引入日志文件logback
  • 音乐制作软件Studio One mac有哪些特点
  • 开源C语言库Melon之日志模块
  • [NOIP2006 提高组] 作业调度方案(修改)
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -全局异常统一处理实现
  • 浏览器缓存引发的odoo前端报错
  • 如何搭建开源知识库软件AFFiNE并实现公网环境远程协作【内网穿透】
  • 记忆泊车信息安全技术要求
  • 开源分布式任务调度系统DolphinScheduler本地部署与远程访问
  • C++day3作业
  • 设计模式⑤ :一致性
  • Android通过Recyclerview实现流式布局自适应列数及高度
  • AlexNet(fashion-mnist)
  • 2024新年烟花代码完整版
  • Fontfabric:一款字体与设计的完美结合
  • Python爬虫—requests模块简单应用
  • 江科大STM32