我有一个 Spring Boot 应用程序,我的调度程序类如下。 问题是,它每一分钟运行一次。 我如何安排它每 1 小时而不是每 1 分钟运行一次?
import org.springframework.scheduling.quartz.QuartzJobBean;
public class ApplicationPendingConsentJob extends QuartzJobBean {
}
通过实现 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;
}
}