avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页
mdo

在 think-swoole 框架中融入 Custom Process(自定义进程)

在 think-swoole 框架中融入 Custom Process(自定义进程) 需要特别注意生命周期。因为 think-swoole接管了 Swoole\Server 的创建与启动,我们不能直接 $server->addProcess(),而是必须在 swoole.init 事件中,将自定义进

2026-06-29 技术

Swoole 的自定义进程(Process)

你目前是通过 think-swoole 框架提供的沙箱(Sandbox)在 swoole.init 事件中,使用主服务器的 $server->addListener(...) 来动态监听 RPC 端口(9513)。 正如之前分析的,$server->addListener() 产生的子端口,无法通过

2026-06-29 技术

为 RPC 端口和 Websocket 端口配置独立的 Worker 进程

在标准的 Swoole 中,子服务器端口(listen 产生的 Swoole\Server\Port)只能单独设置网络协议参数,无法直接通过 set(['worker_num' => X]) 来独立设置 Worker 进程数量。也就是说,默认情况下它们必然会共享主服务器的 Worker 进程。 为了

2026-06-29 技术

think-swoole 框架底层的一个“隐藏陷阱”

在 think-swoole 的底层实现中,当你调用 $websocket->to('room')->push($data) 时,由于 push 方法需要向特定的 FD 直接发送原始数据,框架为了保证主 Worker 进程不被网络 I/O 阻塞,在底层确实会自动把发送任务投递给 Task 进程去异步

2026-06-27 技术

think-swoole 自带的 Room

改用 think-swoole 自带的 Room(房间) 机制是解决线上高频广播丢包、阻塞的最正确姿势。 因为 Room 的底层完全基于 Swoole Table(内存共享表) 实现。当你要全员广播时,它不需要走传统的 Task进程,也不需要通过复杂的管道(Pipe)跨进程通信,更不需要你在代码里写

2026-06-27 技术

Task 队列阻塞与丢弃

在本地测试没问题,但线上在高并发、高频发布消息时出现“丢包”或“收不到信息”的现象,这在 think-swoole / Swoole 开发中非常典型。 虽然你配置了 task_worker_num = 8,但在高频广播消息的场景下,问题通常不是因为 Task 进程不够,而是由于 Swoole 的进程

2026-06-27 技术

think-swoole 全局广播

在 think-swoole 中,全局广播(向当前服务器上所有连接的客户端发送消息)通常有两种实现方式。 第一种是利用 think-swoole 内置的 Websocket 门面(Facade)或事件机制,适合单机部署;第二种是结合 Redis 发布/订阅(Pub/Sub),适合分布式/多机部署。

2026-06-26 技术

利用 Swoole 协程特性

默认配置 task_worker_num => 4 在面对批量推送消息时严重不足。当需要给成百上千个用户推送消息时,循环调用 Swoole 的 push 或投递大量小任务,会瞬间挤爆这 4 个进程,导致后续任务全部排队甚至超时。 请按照以下分级方案进行优化,方案一和方案二可以立即见效: 方案一:立即

2026-06-26 技术

Linux | Reqable · API抓包调试 + API测试一站式工具

Reqable是什么? Reqable = Fiddler + Charles + Postman 极简的设计、极高的性能、丰富的功能、桌面手机多端平台。 多协议流量分析 基于经典的MITM中间人代理方案捕获和分析您的应用流量,自适应HTTP/HTTPS/SOCKS4/SOCKS5等多种代理协议,并

2026-06-25 知识库

Session 文件冲突

即便你修正了拼写错误并加上了 session_start(),在 ThinkPHP 6 (TP6) 环境下,$sessionId 和 $sessionId2 依然是不一样的。 不仅如此,由于操作顺序和 TP6 的底层设计,这段代码在实际运行中还会带来非预期的并发副作用。 1. 为什么它们仍然不一样?

2026-06-25 技术
  • 1
  • …
  • 4
  • 5
  • 6
  • 7
  • 8
  • …
  • 15

最近更新

  • 比尔盖茨的智慧:想多赚钱,就每天循环做这3件事
  • iOS 侧载(Sideloading)工具
  • 程序员越想创业,越不要急着动手
  • 注册 Chat Participant
  • 中秋给在外游子的一封信

热门标签

API CodeGeex Coding Cursor DeepSeek Docker Gitkraken Harness Laravel Management

©2026 mdo. 保留部分权利。