spring schedule 定时任务阻塞,请求解决思路

2018-04-16 21:10:29 +08:00
 Jamedxs

小白一枚,在工作中遇到了一个问题,定时任务每分钟执行一次对 N 类数据进行处理,但是由于其中一类数据定时任务在查数据库的时候花费了大量的时间,导致这个定时任务其他类型的数据不能处理。这种情况下应该怎么办,请求大佬们给一点解决思路,谢谢啦。

5813 次点击
所在节点    程序员
12 条回复
kingwrcy
2018-04-16 21:42:54 +08:00
耗费时间的 job 单独起线程做,不要耽误其他 job.
ala2008
2018-04-16 21:59:12 +08:00
那就不要每分钟啊,任务执行完成才开始下一轮
zhazi
2018-04-16 22:32:14 +08:00
扔队里?
NeinChn
2018-04-16 23:51:44 +08:00
那就....
再开个线程后台跑啊
干嘛阻塞 Schedule 的线程......
TaoSama
2018-04-17 00:28:54 +08:00
再来个 io 的线程(池)
Cbdy
2018-04-17 07:08:35 +08:00
spring 的 schedule 有线程池模式,或者 fork 线程跑也行
broadliyn
2018-04-17 09:26:12 +08:00
taskScheduler taskExecutor 是可以设置线程池的
A555
2018-04-17 09:33:20 +08:00
改成非并发
arthas2234
2018-04-17 10:07:15 +08:00
为啥在每分钟都要调用的任务里面,查一个大的数据。。。查询耗时的那部分能不能做缓存
pluone
2018-04-17 10:20:22 +08:00
spring schedule 的原理,如果同一时间点有多个任务要执行,那么正在执行的后阻塞后面的任务
zzzmode
2018-04-17 10:47:43 +08:00
Jamedxs
2018-04-17 18:14:39 +08:00
谢谢大家的意见。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/447314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX