这篇文章击中了定时任务最隐蔽的脆弱性——我们总是默认“单次执行”的原子性,却忘了...
你写了一个 Schedule::command('orders:sync')-˃everyMinute(),测试环境一切正常。然后生产流量涌入,订单同步开始耗时三分钟——你突然有了四个相同的进程在同时跑,数据库死锁,邮件重复发送,API被同一笔订单调用了四次。问题来了:这只是一个...
还有 14 人发表了评论 加入109人围观你写了一个 Schedule::command('orders:sync')-˃everyMinute(),测试环境一切正常。然后生产流量涌入,订单同步开始耗时三分钟——你突然有了四个相同的进程在同时跑,数据库死锁,邮件重复发送,API被同一笔订单调用了四次。问题来了:这只是一个...
还有 14 人发表了评论 加入109人围观