问答 / 0 / 1 / 创建于 4年前 / 更新于 4年前
请教下老师 @leo ,正常情况下支付成功回调里会处理非常多的逻辑,比如:减库存,加销量,增加用户积分,增加该用户的上线佣金,增加上线的佣金记录等等,如果每个逻辑都创建一个事件来实现的话,各个逻辑实现都分属在不同的事件里,一旦某个环节异常出错,比如购买产品的用户的上线佣金增加出错导致佣金增加失败,但是依然增加了佣金记录,这就导致了数据的不一致性,如果是将这些业务逻辑写在一个事务里面的话一旦有一步出错就会进行数据回滚,能确保数据一致,但是如果写在多个事件里的话如何能确保数据一致性?或者说能达到使用事务出错后回滚的的效果l
增加佣金和佣金记录应该是同一个逻辑不可以拆开,所以要么都成功要么都失败。
支付成功的逻辑需要区分核心逻辑和非核心逻辑,对于非核心逻辑的失败可以忽略或者事后校对重试,比如课程中的发送成功邮件;对于核心逻辑失败则应该记录日志+回滚,由研发决定应该是手动处理异常还是忽略。
我要举报该,理由是:
推荐文章: