开发总结(财务中台项目)

1.   前言

本次负责开发银企直联(到账信息总览,到账通知,消息提醒模块等功能),前端花的时间比较多,做个总结。

 

2.   收获

2.1  sql中用if语句增加灵活性

比如到账信息总览的销售分析表

 

 

总体上属于分组求和,难点在于每一个列的求和条件都不一样,如果分别写sql来查询的话,那至少要写3条sql,而且查询出来之后还要用代码把查出来的数据一一拼装起来,从性能和代码量来说都不是合理的解决办法,用if语句完美的解决了这个问题。

 

 

对每一列用if语句增加不同的条件过滤数据之后再求和,而共同的条件则放在where语句。

然后因为表格中的数据的细粒度也不一样,所以用了mybatis的choose语句,来达到sql复用的目的。这样,本来要写9条sql语句来查询,现在用一条sql就解决了。

 

2.2  异步提高程序性能

一般来说,如果是在分布式系统中,一个服务调用其他服务都是要用异步调用来提高响应速度。

到账通知的下载功能因为要调用第三方接口,而第三方接口响应速度很慢,而业务上这个接口调用需要独占式进行,所以要用异步加分布式锁来处理。

 

 

分布式锁采用的是redis分布式锁,这样保证最多只有一个线程在调用这个接口(除非这个线程阻塞超过10分钟而导致过期了),而这里之所以没有用new一个线程来处理,而是采用只有一个线程的线程池来处理,是为了避免线程管理混乱,导致程序奔溃。

posted @ 2019-04-03 11:32  风中的熊二  阅读(1119)  评论(0编辑  收藏  举报