spring调度任务来运行不同的线程

hi3rlvi2  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(209)

我在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个不同的任务正在运行。目前所有这些都在同一个线程上运行。如何使它们在不同的线程上运行,并在每个任务上设置超时。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题