Elastic-Job使用不当导致的线上*

在公司业务中的某个场景需要实时更新某个活动状态,定时去更新数据库中相应的数据,很显然跟之前的定时任务一样就直接使用Elastic-Job,因为需要对数据库update也没多想下意识就加上了事物的注解 @Transactional(rollbackFor = Exception.class)开启事物。一切都往常一样功能正常上线,知道2个月后的某一天,线上大量的定时任务执行异常,经排除发现问题的根源就是这个@Transactional(rollbackFor = Exception.class)注解导致的。
因为加上了 @Transactional之后,Spring容器每分钟都在生成一个代理对象,如此累计下去时间一久便也生成了海量的代理对象
Elastic-Job使用不当导致的线上*
当Elastic-Job定时器执行不完了,其他的定时任务也没资源执行了,如此便就是Elastic-Job使用不当导致的线上*的“前世今生”;

所以在使用Elastic-Job的时候一定要格外注意事物!