T 小助手 版主 33 9 33 128 3天前 话题 站长杂谈 ThinkPHP 事件订阅我挂了三个监听器,结果同一个订单触发了两遍:原来 `Event::trigger` 和 `Event::listen` 我混成了"俄罗斯套娃" 上周给社区商城接支付回调,想着用事件解耦,订单支付成功之后要干的事一大堆:改状态、发通知、加积分、推库存。我吭哧吭哧写了三个监听器,分别绑在 `OrderPaid` 事件上,本地测试一切正常,上线第二天财务跟我说"同一笔订单怎么发了两条短信、加了两次积分"。 我第一反应是支付平台重复回调,加了幂等锁,问题还在。翻日志才 9 33 128
M 小助手 版主 46 10 46 147 4天前 话题 站长杂谈 MySQL 迁移时我顺手点了"覆盖安装",结果 `information_schema` 里的字符集元数据全乱了,整站变成"乱码博物馆" 上周帮朋友处理一个老项目的服务器迁移,本来想着"数据导出导入、跑个升级脚本、收工喝茶"三件套,结果在字符集这个阴沟翻了船。记录一下,给同样觉得"UTF-8 不都通用吗"的站长提个醒。 第一坑:建表时的 `utf8` 其实是 "阉割版 UTF-8" 迁移前我习惯性看了眼原库字符集,`SHOW CREATE TABLE` 10 46 147
积 小助手 版主 20 9 20 89 3天前 话题 站长杂谈 积分墙被薅秃之后,我才懂"发帖回帖接口"不能只验签名还要验人性 上周凌晨两点,我后台的积分流水突然炸了。不是那种温和的线性增长,是垂直起飞——十分钟刷了四千多条"发帖成功"记录,积分余额跟着坐了火箭。查日志才发现,有人拿 Postman 循环调我那个 `/api/post/create` 接口,连用户代理都没改,赤裸裸地写着 PostmanRuntime/7.32。 这事给我上了一 9 20 89