spring QuartzJobBean 设置频率

问题描述 投票:0回答:1

我有一个 Spring Boot 应用程序,我的调度程序类如下。 问题是,它每一分钟运行一次。 我如何安排它每 1 小时而不是每 1 分钟运行一次?

import org.springframework.scheduling.quartz.QuartzJobBean;

public class ApplicationPendingConsentJob extends QuartzJobBean {

}
java spring-boot quartz-scheduler
1个回答
0
投票

通过实现 org.quartz.Job 接口创建一个 Quartz 作业。该接口要求您实现execute()方法,该方法包含作业要执行的逻辑。

public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
    // Your job logic goes here
 }
}

使用 @Configuration 注解在 Quartz 配置类中配置作业和触发器。定义 SchedulerFactoryBean bean 并设置作业和触发器详细信息。

 @Configuration
 public class QuartzConfig {
// Define your job
@Bean
public JobDetailFactoryBean jobDetailFactoryBean() {
    JobDetailFactoryBean factory = new JobDetailFactoryBean();
    factory.setJobClass(MyJob.class);
    return factory;
}

// Define your trigger
@Bean
public SimpleTriggerFactoryBean simpleTriggerFactoryBean() {
    SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean();
    factory.setJobDetail(jobDetailFactoryBean().getObject());
    factory.setRepeatInterval(60000); // Repeat every 60 seconds
    return factory;
}

// Define the scheduler
@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
    SchedulerFactoryBean factory = new SchedulerFactoryBean();
    factory.setTriggers(simpleTriggerFactoryBean().getObject());
    return factory;
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.