gpt4 book ai didi

java - 如何使用 Spring Boot 通过 cron 表达式调度多个任务?

转载 作者:行者123 更新时间:2023-12-01 20:56:52 31 4
gpt4 key购买 nike

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

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

application.properties

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);
}
}

关于java - 如何使用 Spring Boot 通过 cron 表达式调度多个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42217691/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com