突然上了个抢购活动 下单的时候 我们通过队列进行了延时处理,我们抢购到的券是erp系统的券,那么这里涉及到券的券的跨系统发放,也就是我们所说的分布式事务 因为erp系统的属于老的asp程序 下面的各个门店直接使用它来核销 单量增多 如果按照原来的同步逻辑
支付日志写入 =》订单状态修改 =》更新活动参与日志 =》 各种统计数等
=》调用asp程序接口进行发券 =》 如果asp程序没有对应的用户 =》还需要进行增加用户的操作
=》然后给门店顾问与客户推送消息 =》应答第三方支付系统的接口
其中 asp程序这里我们可以看到 是跨系统的事务 门店消息属于较低优先级的任务
那么 我们先把 订单日志与订单状态放同一同步系统内的事务进行处理 然后返回消息给支付系统
asp这边 通过创建一个消息任务
当消费者消费成功后 创建一个消息推送队列 在发出
当支付任务较多的适合 可以通过排队的方式将压力分出