我想调度多个任务使用@调度注释使用cron表达式。我有三项工作需要在固定时间执行。例如,作业-1被安排在每天晚上11点,作业-2被安排在每天早上7点到晚上9点,间隔1小时,作业-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);
}
}
是否有任何专家在使用spingdge调度程序时遇到问题? 我试着设置它在工作日的下午2点到晚上10点之间每小时运行15分钟,但是好像是按分钟触发的,这是因为我的cron出错了还是我应该做smthg来控制它? 通过springboot-web-started在linux服务器上运行 版本
通过实现ApplicationListener并重写方法:onApplicationEvent(ContextRefreshedEvent事件),我编写了一个StartupListener。 在这个方法中,我试图根据文件对应的布尔值是否为true来创建一些文件。 使用@Value注释从“application.properties”文件中读取此布尔值。 这个StartupListener很好用。
我想基于cron表达式运行一个作业,但它应该在rest调用后从DB中查找cron表达式。 一旦rest api被命中,它应该等待cron表达式,我们可以从数据库或任何方法获得它,然后它应该在指定的时间启动。 它的工作方式与普通的方法调用类似。
我正在使用石英调度程序来安排我的工作。我有一个错误的cron表达式: 当我这样做的时候: is。但是当我查看表达式时,它显然是错误的。其他人也面临类似的问题吗? 注:包装为:包装组织。石英 石英的版本是:2.2.3 请检查来自的CronExpression类http://www.javadoc.io/doc/org.quartz-scheduler/quartz/2.2.3 我还尝试了类的方法,但