码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-04-03 12:28:35      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:处理   ati   细粒度   ima   redis   开发   代码   com   系统   

1.   前言

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

 

2.   收获

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

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

 技术图片

 

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

 技术图片

 

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

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

 

2.2  异步提高程序性能

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

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

 技术图片

 

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

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

标签:处理   ati   细粒度   ima   redis   开发   代码   com   系统   

原文地址:https://www.cnblogs.com/xiejh8/p/10647779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!