【问题标题】:What happens to Cron jobs if spring thread scheduler is full?如果 Spring 线程调度程序已满,Cron 作业会发生什么?
【发布时间】:2019-04-29 10:58:01
【问题描述】:

在我的应用程序中,我有一个 spring 线程调度程序池,用于在未来的特定时间运行不同的 Cron 作业。 我的 Cron 作业有足够的日志记录来说明它做了什么。 我开始注意到有时这些作业没有在它应该运行的时间执行。我已经验证这些作业已添加到调度程序队列中。所以我怀疑如果我的调度程序池已满并且没有任何空闲线程,那么它无法在特定时间安排作业。当 spring 在池中找到任何空闲线程时,它不应该运行这种延迟的作业吗?或者它只是忽略此运行并在下一个计划中运行该作业?

【问题讨论】:

    标签: java spring cron spring-integration threadpool


    【解决方案1】:

    这不是 Spring 的责任。这就是来自 Java 的 ScheduledExecutorService 的工作原理。

    我相信,只要池中的线程空闲,所有这些任务都会被执行。一一按队列。

    【讨论】:

    • 假设我将它安排在每天凌晨 12 点。如果那时池已用尽,那么 cron 作业会在第二天凌晨 12 点尝试,还是有任何线程空闲?
    • 不,只要池中有线程空闲,它们就会执行。请学习java.util.concurrent.ScheduledThreadPoolExecutor
    猜你喜欢
    • 2013-12-19
    • 2010-11-19
    • 2012-08-06
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 2019-02-12
    • 2020-08-31
    • 1970-01-01
    相关资源
    最近更新 更多