我在spring boot应用程序中使用@scheduled符号安排了4个作业。问题是,我想在不同的线程上运行它们,并在每个计划的作业执行上设置一个超时时间,如果该作业在给定的时间内没有完成,则终止该作业并执行下一个示例
我用下面的方法实现了这一点
主要类别:
@SpringBootApplication
@EnableJpaAuditing
@EnableCaching
@EnableJms
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT50S")
@ComponentScan
public class mainApplication {
.......
@Bean
public LockProvider lockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(dataSource, "shedlock");
}
}
作业文件:
@Scheduled(cron = "0 0/59 * * * ?")
@SchedulerLock(name = "task_1", lockAtLeastFor = "PT120S", lockAtMostFor = "PT600S")
public void periodicTask() throws Exception {
//Execution code
}
与这个periodictask()类似,我有3个不同的任务正在运行。目前所有这些都在同一个线程上运行。如何使它们在不同的线程上运行,并在每个任务上设置超时。
暂无答案!
目前还没有任何答案,快来回答吧!