Lj

Results 12 comments of Lj

> ### 删除`Runtime配置方法`和`enable_coroutine`选项并强制开启 > 我们要拥抱一个纯协程的生态, 我们就不再需要它们, 就像go语言那样简单纯粹, 既然你使用了Swoole协程, 那么你就要**全面启用**它, 你的代码里就不应该存在同步阻塞, 否则你写出来的程序将毫无意义. > > 因此, 协程化将强制开启, 各种[事件回调](https://wiki.swoole.com/wiki/page/949.html)中都会是协程的环境, 而PHP中曾经同步阻塞的一系列IO方法也会变成协程的, 你将不会有太多顾虑, 尽管书写你的协程代码: > > * `phpredis`扩展 > * 使用`mysqlnd`模式的`pdo`、`mysqli`扩展,如果未启用`mysqlnd`将不支持协程化 (PHP默认就是mysqlnd) > * [`soap`](http://php.net/manual/zh/book.soap.php)扩展...

> ### 最大程度地禁止同步阻塞的方法 > 目前的`Runtime::enableStrictMode`是一个比较鸡肋的方法, 而且会和`Runtime::enableCoroutine`冲突, 如实行了上一个提案内容, 那么严格模式也有了用武之地, Swoole内核将会强制开启严格模式, 禁止所有协程之外的阻塞IO操作, 一旦你在不小心使用了阻塞IO, 你的程序将会立即退化为同步模式, 损失大量的性能, 协程也将失去意义. > > 所以底层将会在开发者使用了协程的时候, 阻止开发者错误地使用阻塞方法, 并在此时抛出一个致命的错误警告. 我要用 redis 的 brpop 怎么办?在 golang 里也是能用的。

> ### 删除Process模式(有争议的内容) > 根据Swoole创始人Rango的意见, Process是一个不那么必要的设计, Process模式最大的作用是在worker进程异常退出的时候Master能够保持长连接不断开. 但是Process模式增加了两次IPC开销, 不支持一些高级功能, 其性能相比于Base模式相差巨大(Base简单高效, 能快速承载海量连接), 并且开发者时常在各种投递模式(dispatch_mode)中作无谓的纠结, 且由于Proces模式的复杂性, 它可能会更容易出错. > > Process模式完全可以被nginx等专业的代理替代, 并且在对外的生产环境中, nginx总是必须的, 如http服务, swoole只实现了基本的应用服务器级别的协议解析支持, 而nginx则是拥有最为完备的协议解析支持. > > 就算没有Process模式, Base模式也支持异步安全重启特性和`max_request`等特性 移除 Process 的话,那得要像 go...

sub process exit too fast, sleep 2 seconds: Swoole 从 4.4.0 开始接受我的提议支持 hook `proc_open` 方法,但后面到 4.4.3 / 4.4.4 修改 wait 时出了问题,导致bug,4.4.5 已经修复该问题,凡是出现不停 `sub process exit too fast, sleep 2 seconds`...

可以正常启动,但是不会触发重启: 如果用 vim 修改 **docker容器内部或者虚拟机内部** 本地文件能捕获到文件更新并重启命令,而在宿主机用 IDE 修改不能重启:`inotify 监控不了映射的共享文件夹,需要使用 git hook / ftp 等工具在容器内部本地修改代码` SwooleFor v1.1.3 已经支持文件扫描的方式捕获代码更新: 下载 swoolofor 的最新版本:https://github.com/mix-php/swoolefor/releases/latest ``` php swoolefor.phar --exec="php app.php arg..." --no-inotify ``` php 在...

@PandaLIU-1111 public static function build(mixed $args): string 方法里面的 \r\n 是不是改成使用那个常量 CRLF 更好?

@PandaLIU-1111 发布了新版本 https://github.com/mix-php/redis-subscriber/releases/tag/v3.0.5 你可以帮忙用composer安装最新版本 re test 一下么

不太敢加,重启的场景太低频了,抛出一次错误问题也不大(反正后续的请求应该就自动恢复正常了)

$maxLifetime = 3600; // 连接的最长生命周期 注意这个,要检查和mysql的my.cnf有个配置是连接闲置时间,mysql会自动kill连接,所以 $maxLifetime 要小于那个mysql配置的时间。