• java 开发业务逻辑的思考(1)- 通知短信发送


    坚持每天写一个总结的博客,今天又是一个新的开始!

      今天我要说的是一个关于发送短信通知发送的问题。具体的业务流程是这样的,现在需要对用户的一个提现的申请进行审核,审核的内部需要控制很多的业务,

    1.检查用户的提现余额-> 2.减去用户的账户金额->3.减去公司的结算账户的余额-> 4.创建用户的提现日志记录->5. 创建公司账户的资金变动日志-> 6.提现成功

    后,需要给用户发送提现到账的短信通知。这是一系列需要处理的事情。

      要实现这个流程,保证资金的数据的不出错,就必须要在一个事物中控制这个流程。有分析可知,第1 到 第5步,这些需要在一起执行,要成功都成功,要失败

    就都失败,这样金额的数据才不会错。所以我就把几个任务放在一个事物里面,控制他们执行的一致性。

      然后,要是怎样处理发送短信的这一块的任务的呢?

    首先我们要从事物,业务两块来考虑:首先,短信的业务是必须的吗?不是。短信的发送成功会影响数据准确性吗?不会。短信只是一个给用户的温馨提示,即使没法

    送,也不影响数据,再者,短信的发送就是调用一个发送的接口,一使用就会发送,如果我们的程序在发送后出错了,事务回滚,但是短信却发送了,也会给用户带来

    不好的影响。所以,这个完全可以从上面的事务中剥离出来,成为事务之外的任务。即,事务执行成功,发送短信提示,不成功就不发送。那么这样,任务就解决问题了。

      今天为什么要写这个总结,其实不只是说单纯的介绍这个业务流程,我更想说的是一个编程的思想,在任务和逻辑、业务和流程的问题上,我们要保证数据的正确性

    的同时,要学会将任务抽象话,减少事务间的耦合。

  • 相关阅读:
    IOC和DI的区别
    hdu 1217(Floyed)
    hdu 2112(字典树+最短路)
    hdu 4081(次小生成树)
    hdu 1811(缩点+拓扑排序+并查集)
    poj 3026(BFS+最小生成树)
    hdu 3635(并查集)
    hdu 3047(扩展并查集)
    hdu 1116(并查集+欧拉路径)
    poj 1679(次小生成树)
  • 原文地址:https://www.cnblogs.com/wyxueyoubang/p/6224882.html
Copyright © 2020-2023  润新知