每周一更的收藏夹吃灰系列又一度提上日程,今晚分享点啥好嘞,哦嚯,有主意了,那还请小伙伴们移目下方吧,"线程池启动执行定时任务"新鲜出炉啦,赶紧趁热吃。
本文背景:
最近接手了一老项目,搁置了有一段时间,现在要我进行项目迭代,也就是二次开发,然后有遇到这么个问题,"就是在项目中设置了定时任务之后 , 发现存在多个定时(周期)任务中总是有个别任务不执行",经过一番折腾之后 , 原来是spring提供的定时器任务scheduled-tasks默认配置是单线程串行执行的。就是说:即在当前时间点之内,如果同时有两个定时任务需要执行的时候, 排在第二个的任务就必须等待第一个任务执行完毕执行才能正常运行。如果第一个任务耗时较久的话 , 就会造成第二个任务不能及时执行。这样就很可能由于任务执行失败导致效性带来一系列问题,后果可想而知,而在实际项目中 , 我们也往往希望这些定时任务是"各干各的" , 而不是排队执行,做到如何并行化?这个问题想必大家都已经浮现在脑海中了。
有小伙伴可能立马就想到了@Async和@