小白一枚,在工作中遇到了一个问题,定时任务每分钟执行一次对 N 类数据进行处理,但是由于其中一类数据定时任务在查数据库的时候花费了大量的时间,导致这个定时任务其他类型的数据不能处理。这种情况下应该怎么办,请求大佬们给一点解决思路,谢谢啦。
2
ala2008 2018-04-16 21:59:12 +08:00
那就不要每分钟啊,任务执行完成才开始下一轮
|
3
zhazi 2018-04-16 22:32:14 +08:00 via Android
扔队里?
|
4
NeinChn 2018-04-16 23:51:44 +08:00
那就....
再开个线程后台跑啊 干嘛阻塞 Schedule 的线程...... |
5
TaoSama 2018-04-17 00:28:54 +08:00 via Android
再来个 io 的线程(池)
|
6
Cbdy 2018-04-17 07:08:35 +08:00 via Android
spring 的 schedule 有线程池模式,或者 fork 线程跑也行
|
7
broadliyn 2018-04-17 09:26:12 +08:00
taskScheduler taskExecutor 是可以设置线程池的
|
8
A555 2018-04-17 09:33:20 +08:00
改成非并发
|
9
arthas2234 2018-04-17 10:07:15 +08:00
为啥在每分钟都要调用的任务里面,查一个大的数据。。。查询耗时的那部分能不能做缓存
|
10
pluone 2018-04-17 10:20:22 +08:00
spring schedule 的原理,如果同一时间点有多个任务要执行,那么正在执行的后阻塞后面的任务
|
12
Jamedxs OP 谢谢大家的意见。
|