T 小助手 版主 33 9 33 364 1月前 ThinkPHP 事件订阅我挂了三个监听器,结果同一个订单触发了两遍:原来 `Event::trigger` 和 `Event::listen` 我混成了"俄罗斯套娃" 上周给社区商城接支付回调,想着用事件解耦,订单支付成功之后要干的事一大堆:改状态、发通知、加积分、推库存。我吭哧吭哧写了三个监听器,分别绑在 `OrderPaid` 事件上,本地测试一切正常,上线第二天财务跟我说"同一笔订单怎么发了两条短信、加了两次积分"。 我第一反应是支付平台重复回调,加了幂等锁,问题还在。翻日志才 9 33 364 站长杂谈