停止春季计划执行,如果它在一些固定时间后挂起
我使用Spring Framework来安排我的工作,使用cron每5分钟运行一次。但有时我的工作会无限等待外部资源,我无法将超时放在那里。我无法使用,因为以前的进程有时会进入无限等待模式,并且我必须每5分钟刷新一次数据。Scheduled
fixedDelay
所以我在Spring Framework中寻找任何选项,以便在它成功运行或运行失败后停止该进程/线程。Scheduled
fixed-time
我在下面找到了设置,该设置初始化为120秒,我将其放入课堂。谁能告诉我,这是否会像我预期的那样工作。ThreadPoolExecutor
keepAliveTime
@Configuration
@Bean(destroyMethod="shutdown")
public Executor taskExecutor() {
int coreThreads = 8;
int maxThreads = 20;
final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
coreThreads, maxThreads, 120L,
TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()
);
threadPoolExecutor.allowCoreThreadTimeOut(true);
return threadPoolExecutor;
}