Java 如何使用Springboot通过cron表达式调度多个任务?
我想使用cron表达式使用@schedule注释调度多个任务。我有三项工作需要在固定时间执行。例如,作业1已安排在每天晚上11点,作业2已安排在每天上午7点到晚上9点,间隔1小时,作业3已安排在每1小时。所有3个计划任务都是同一应用程序的一部分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
我也尝试过同样的方法,但这三个计划都没有实现。我的应用程序是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,所以无法对使用$
从属性文件获取内容发表评论。最好先硬编码。