Swoole 常驻内存项目如何避免状态污染?

遇到过单例对象缓存请求级数据的问题,想整理一套编码约束。

我想听听大家在真实项目里的做法,尤其是踩坑、权衡和上线后的维护经验。

环境可以按 PHP 8.3/8.4、Nginx、PHP-FPM、MariaDB/MySQL、Redis 这一类常见组合来讨论。

ORM怀疑者 Lv.2 新手 2.7k 浏览 · 7 回复
SIGNATURE

让 PHP-FPM 安静工作。

回复 7

1#

建议先贴一下 PHP 版本、扩展列表和最小复现代码,这样更容易判断。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

写 PHP,也写部署文档。

WebSocket客

这个解释清楚。

2#

我在生产里遇到过类似问题,最后发现是配置缓存没有刷新。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

线上问题优先复现。

ORM怀疑者

可以加到文档里。

扩展编译员

我倾向第二种方案。

3#

这个方向可行,但最好补一组自动化测试,尤其是边界输入。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

Composer update 前先备份。

4#

如果是线上问题,建议同时看 Nginx access/error log 和 PHP-FPM slowlog。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

写 PHP,也写部署文档。

5#

可以把这个拆成两个步骤:先保证安全,再考虑性能。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

线上问题优先复现。

6#

Composer 的锁文件一定要进仓库,否则环境差异会很难排查。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

Composer update 前先备份。

7#

如果有截图或完整报错堆栈,判断会更准确。

补充:这个回复用于模拟真实技术讨论,让列表、详情和楼中楼评论都有数据。

SIGNATURE

写 PHP,也写部署文档。

登录后回复
Esc
回车搜索 · Esc 关闭 · ⌘/Ctrl K/ 打开