spring boot 中Quartz使用示例及cron表达式

在Spring Boot中使用Quartz,您可以通过添加spring-boot-starter-quartz依赖来简化配置。以下是一个简单的示例,展示了如何在Spring Boot应用程序中和使用Quartz。

  1. 首先,在pom.xml文件中添加spring-boot-starter-quartz依赖:
<dependencies>
    ...
   dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-quartz</artifactId>
    </dependency>
    ...
</dependencies>
  1. 创建一个Quartz Job类。这个类需要实现org.quartz.Job接口,并实现execute方法:
import org.quartz.Job;
 org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {
    
    
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
    
    
        System.out.println("Hello, Quartz!");
    }
}
  1. 在Spring Boot配置类中配置Quartz:
import org.quartz.JobDetail;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;

@Configuration
public class QuartzConfig {
    
    

    @Bean
    public JobDetailFactoryBean myJobDetail() {
    
    
        JobDetailFactoryBean jobDetailFactoryBean = new JobDetailFactoryBean();
        jobDetailFactoryBean.setJobClass(MyJob.class);
        jobDetailFactoryBean.setDurability(true);
        return jobDetailFactoryBean;
    }

    @Bean
    public SimpleTriggerFactoryBean myJobTrigger(JobDetail myJobDetail) {
    
    
        SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean();
        trigger.setJobDetail(myJobDetail);
        trigger.setRepeatInterval(5000); // 每5秒执行一次
        trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); // 无限次重复
        return trigger;
    }
}

在这个示例中,我们创建了一个简单的Quartz Job,每5秒执行一次。

关于Quartz的cron表达式,它是一个包含6个或7个字段的字符串,用于定义任务的执行时间。字段顺序为:秒、分、小时、月中的天、月、周中的天可选)。

以下是一些cron表达式示例:

  • 0 0 * * * *:每小时的整点执行
  • */10 * * * *:每10秒执行一次
  • 0 0 8-10 * * *:每天的8点、9点和10点执行
  • 0 0 6,19 * * *:每天的6:00 AM和7:00 PM执行
  • 00/30 8-10 * * *:每天的8:00、8:30、9:00、9:30、10:00和10:30
  • 0 0 9-17 * * MON-FRI:工作日的9点至17点每小时执行
  • 0 0 0 25 12 ?:每年圣诞节午夜执行

更多关于Quartz cron表达式的信息,您可以参考官方文:Quartz CronTrigger Tutorial

猜你喜欢

转载自blog.csdn.net/orton777/article/details/131254286
今日推荐