如何使用Springboot通过cron表达式调度多个任务?

时间:2017-02-14 04:08:08

标签: java spring spring-boot cron

我想使用cron表达式使用 @schedule 注释来安排多个任务。我有三份工作要求在固定时间执行。例如,Job-1每天安排在晚上11点,Job-2安排在每天上午7点到晚上9点,间隔1小时,Job-3每1小时安排一次。所有3个计划任务都是同一个应用程序的一部分。

我尝试了相同的但是没有发生所有三个调度。我的应用程序是 SpringBoot应用程序。我不是新的调度。请帮助我。以下是我的方法

application.properties

#r "FSharp.Data"

open FSharp.Data

let googleUrl = "http://www.google.co.uk/search?q=FSharp.Data"
let doc = HtmlDocument.Load(googleUrl)

Java代码

cron.expression.job1=0 0 23 * * ?
cron.expression.job2=0 0 7,9 * * ?
cron.expression.job3=0 0/60 * * ?

1 个答案:

答案 0 :(得分:3)

您应该配置TaskScheduler线程池大小。如果你没有配置,默认大小为1,这意味着spring将逐个执行你的任务。您可以在下面配置您的TaskScheduler。

@Configuration
@EnableAsync
@EnableScheduling
public class SpringBootConfiguration {

    @Bean
    public Executor getTaskExecutor() {
        return Executors.newScheduledThreadPool(10);
    }
}