最近在做对接微信支付方面的工作,遇到一个问题:创建订单后需要执行业务操作并发消息到其他应用执行相关业务操作。实现方案如下:
其中补偿机制如下:
补偿一:轮询状态为prepared的消息,并进行check(key)操作(业务操作执行的标志),若count(key)>0则继续发送sendMessage(key),若消息重试次数大于阈值(在消息体中设置),则删除消息体(此消息作废)
补偿二:轮询状态为toSend的消息,并进行check(key)操作(业务操作执行的标志),若count(key)>0则更新消息状态为confirmed,若消息重试次数大于阈值(在消息体中设置),则删除消息体(此消息作废)
如有问题需要交流,请留言。