两个运营同时改了同一个规则,后保存的把先保存的覆盖了
有次运营跑过来问我:"我昨天配的满减规则怎么没了?活动已经上线了,用户下单也没用券。" 查了一下操作日志,真相很简单:下午 3 点,运营 A 打开了规则编辑页,改了满减门槛从 100 降到 80。改完她没立刻保存,先去开会了。下午 3:15,运营 B 也打开同一个规则,把适用商品从"全场"改成了"指定分类",保存。 下午 4 点,运营 A 开完会回来点了保存——她手里还是下午 3 点的旧版本,里面"适用商品"还是"全场"。她一保存,运营 B 改的"指定分类"被覆盖回去了。 这就是典型的并发编辑覆盖。QLExpress 规则引擎本身只管执行规则,不管谁在什么时候改了规则。多人同时操作的场景下,最后一个保存的人赢——前一个人的修改悄无声息地丢了。 一、为什么这个问题比看起来严重 如果只是规则配错了,运营发现后可以改。但并发覆盖的可怕之处在于——你根本不知道丢了什么。 运营 A 保存后,规则内容是 A 想要的样子,B 的修改完全消失。没有报错,没有提示冲突,没有操作日志记录 B 的修改被覆盖了。B 可能三天后才发现自己配的东西没生效,中间已经发了上万张券。 还有一个隐患:如果 A 和 B ....