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

Java 如何使用Springboot通过cron表达式调度多个任务?,java,spring,spring-boot,cron,Java,Spring,Spring Boot,Cron,我想使用cron表达式使用@schedule注释调度多个任务。我有三项工作需要在固定时间执行。例如,作业1已安排在每天晚上11点,作业2已安排在每天上午7点到晚上9点,间隔1小时,作业3已安排在每1小时。所有3个计划任务都是同一应用程序的一部分 我也尝试过同样的方法,但这三个计划都没有实现。我的应用程序是SpringBoot应用程序。我不是新手。请帮助我。下面是我的方法 应用程序属性 cron.expression.job1=0 0 23 * * ? cron.expression.job2=0

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


我也尝试过同样的方法,但这三个计划都没有实现。我的应用程序是SpringBoot应用程序。我不是新手。请帮助我。下面是我的方法

应用程序属性

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

 @EnableScheduling
 @SpringBootApplication
 public class Scheduler{
     // doCallScheduleJob Code
 }

class ScheduleJob{

  @Scheduled(cron="${cron.expression.job1}")
  public sycName1(){
           ///doSomething()     
  }

  @Scheduled(cron="${cron.expression.job2}")
  public sycName2(){
           ///doSomething()     
  }

  @Scheduled(cron="${cron.expression.job3}")
  public sycName3(){
           ///doSomething()     
  }

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

@Configuration
@EnableAsync
@EnableScheduling
public class SpringBootConfiguration {

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

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

@Configuration
@EnableAsync
@EnableScheduling
public class SpringBootConfiguration {

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

“我也尝试过同样的方法,但三个计划都没有实现”。您必须在问题中包括您尝试过的内容,以便其他人能够帮助您。@RamanujanR我已经用我的方法编辑了我的查询……您能看看这句话吗“我尝试过同样的方法,但所有三种计划都没有发生”。您必须在问题中包括您尝试过的内容,以便其他人能够帮助您。@RamanujanR我已经用我的方法编辑了我的查询……您可以研究一下吗?您可以在我编辑我的查询时再解释一下吗。我想知道,我是否需要用每个线程显式地调用每个任务,或者Springboot会处理这个问题,请按照@AaricChen的建议包含代码。不需要调用每个任务。剩下的就交给春天了。同时检查
@Scheduled
方法是否在包扫描中。另外,您正在两种方法中使用
@Schedule
;那是打字错误吗?尝试所有这些,并评论结果。我还没有尝试过Spring Boot,所以无法对使用
$
从属性文件获取内容发表评论。最好先硬编码。请你解释一下,因为我已经编辑了我的查询。我想知道,我是否需要用每个线程显式地调用每个任务,或者Springboot会处理这个问题,请按照@AaricChen的建议包含代码。不需要调用每个任务。剩下的就交给春天了。同时检查
@Scheduled
方法是否在包扫描中。另外,您正在两种方法中使用
@Schedule
;那是打字错误吗?尝试所有这些,并评论结果。我还没有尝试过Spring Boot,所以无法对使用
$
从属性文件获取内容发表评论。最好先硬编码。