项目二总结:East报送系统
前言
项目:和泰East报送系统
时间:2020-9-20-2021-1-24,四个月
一、技术方面的总结
java技术
主要有:
a) 短信通知,使用和泰核心的短信通知功能,
b) 邮件通知,使用和泰核心的邮件通知功能,配置发送的ip地址,发送人、收件人、抄送人,调用了EmailUtil的方法
c) 导出Excel,导出压缩包zip,将文件打包成zip包,类ZipUtil,FileUtil
d) 批处理的执行方法
e) 使用HttpCilent调用中的其他系统controller地址的方法
f) 定期循环执行任务,ScheduleExecutorService类,例子见每隔一小时扫描银保信FTP服务器
g) FTP、SFTP文件传输
h) 等待线程执行完才继续执行的方法:
1 多线程,latch.await(),latch会等线程数到0,级线程多执行完,才会继续执行下一步。例子见数据校验和数据拆分。
2 一个线程,while(true),循环等待,根据数据库中表记录的状态变化,来判断是否继续执行。例子见系统导入
二、效率优化的方法:
1.Java方面
1 一个主线程,拆分成多个线程,等线程执行完,再继续执行。例子如数据校验、数据拆分,将可以多线程执行的方法放在一个实现Runnable的类中,new Thread()开启线程调用Run
2 当数据量太大,直接在数据库执行sql:insert select卡住不动时,在java中利用preparestatement方法,获取一定量的数据,批量的插入到表中。例子见数据拆分,从rds表往spl表里插入数据
3 当数据量太大导出Excel卡住不动,尤其是服务器性能不够,读写数据量太大会导致服务器崩掉,批量查询和批量写入excel,例子见导出异常数据和导出全量数据
2.数据库方面
1 数据库多线程执行,见CSDN文章
2 /appending no log/添加不写日志标签,在不需要回滚的条件下
3 /* parallel (表名,8) */ 添加并行
三、文档方面
1 概要设计,包含业务图、功能流程图、
业务架构、系统架构、功能架构、技术架构、数据库架构
2 详细设计
主要功能流程图:符合逻辑,照搬代码的话人看不懂
3 操作手册
4 运维文档