初始状态:
arthas查看任务时间: 1000条数据处理了194秒,性能较差,吞吐量在 5条/s,尴尬,194秒!!!
arthas命令:trace -E cn.migu.deal.pori.....SubscribeFlowRecordTask auditSubFlowRecord
优化点1:
定时任务间隔原先配置为
@Scheduled(initialDelay = 30000,fixedDelayString ="60000")
将fixedDelayString 时间优化为 1000 由 60秒间隔,缩短为1秒间隔,提高定时任务执行频率
优化点2:
任务前期,防止出现数据被重复稽核的情况,主线程设置为同步处理,处理速度较慢,优化为异步
考虑点: 1、避免重复消费问题 提出方案:
方案一:按照时间排序,记录上次任务执行时间,下一次查询时,时间大于等于上次查询时间
同时设置缓存,缓存上次消费的所有的记录id&#x