我正在使用 @Scheduled 注释来运行 cron 作业。调度工作了一段时间,然后停止工作。我将给出我的代码的简化片段:
这是调度程序:
//org.springframework.scheduling.annotation.Scheduled
@Scheduled("*/30 * * * * *")
public void performTask() {
logger.info("Starting agent");
getAgentAsyncTask().execute();
logger.info("Ending agent");
}
这是调度程序执行的任务
//org.springframework.scheduling.annotation.Async
@Async(TASK_EXECUTOR)
@Override
public void execute() {
logger.info("Starting task");
//send some rest requests
logger.info("Ending task");
}
两者:“起始代理”和“结束代理”的记录次数相同。因此,每个调度都正确结束。
两者:“开始任务”和“结束任务”记录的次数相同。所以,当然,“任务”并不是阻塞事物。
但它只是在一段时间后停止记录。可能是什么问题?
在这里,TASK_EXECUTOR 是以下 bean:
@Bean(TASK_EXECUTOR)
public ThreadPoolTaskExecutor createDefaultTaskExecutor() {
ThreadPoolTaskExecutor te = new ThreadPoolTaskExecutor();
te.setMaxPoolSize(15);
te.setCorePoolSize(15);
te.initialize();
return te;
}
春季版:
4.1.6.发布