zoukankan      html  css  js  c++  java
  • 开发总结(财务中台项目)

    1.   前言

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

    2.   收获

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

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

     

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

     

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

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

    2.2  异步提高程序性能

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

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

     

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

  • 相关阅读:
    mysql(一)
    spring
    数据库连接池
    spring jdbctemplate
    HDU-4219-Randomization?
    离线赛总结
    HDU-4507-吉哥系列故事-恨7不成妻
    HDU-1204-糖果大战
    [BZOJ1150][CTSC2007]数据备份
    二分图学习笔记
  • 原文地址:https://www.cnblogs.com/xiejh8/p/10647779.html
Copyright © 2011-2022 走看看