V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Jamedxs
V2EX  ›  程序员

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

  •  
  •   Jamedxs · 2018-04-16 21:10:29 +08:00 · 5761 次点击
    这是一个创建于 2398 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    12 条回复    2018-04-17 18:14:39 +08:00
    ala2008
        2
    ala2008  
       2018-04-16 21:59:12 +08:00
    那就不要每分钟啊,任务执行完成才开始下一轮
    zhazi
        3
    zhazi  
       2018-04-16 22:32:14 +08:00 via Android
    扔队里?
    NeinChn
        4
    NeinChn  
       2018-04-16 23:51:44 +08:00
    那就....
    再开个线程后台跑啊
    干嘛阻塞 Schedule 的线程......
    TaoSama
        5
    TaoSama  
       2018-04-17 00:28:54 +08:00 via Android
    再来个 io 的线程(池)
    Cbdy
        6
    Cbdy  
       2018-04-17 07:08:35 +08:00 via Android
    spring 的 schedule 有线程池模式,或者 fork 线程跑也行
    broadliyn
        7
    broadliyn  
       2018-04-17 09:26:12 +08:00
    taskScheduler taskExecutor 是可以设置线程池的
    A555
        8
    A555  
       2018-04-17 09:33:20 +08:00
    改成非并发
    arthas2234
        9
    arthas2234  
       2018-04-17 10:07:15 +08:00
    为啥在每分钟都要调用的任务里面,查一个大的数据。。。查询耗时的那部分能不能做缓存
    pluone
        10
    pluone  
       2018-04-17 10:20:22 +08:00
    spring schedule 的原理,如果同一时间点有多个任务要执行,那么正在执行的后阻塞后面的任务
    zzzmode
        11
    zzzmode  
       2018-04-17 10:47:43 +08:00
    Jamedxs
        12
    Jamedxs  
    OP
       2018-04-17 18:14:39 +08:00
    谢谢大家的意见。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 19:02 · PVG 03:02 · LAX 11:02 · JFK 14:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.