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

本文分享了一次使用Elastic-Job结合@Transactional注解引发线上故障的经历,详细解析了不当使用事务注解如何导致Spring容器生成大量代理对象,最终耗尽资源并影响定时任务执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值