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

  • Post author:
  • Post category:其他


在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



版权声明:本文为orton777原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。