简介

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.0。

文档

w3cschool:

​https://www.w3cschool.cn/quartz_doc/​

官方:

​http://www.quartz-scheduler.org/documentation/quartz-2.2.x/quick-start.html​

实现

新建springboot项目并添加相关Web依赖

新建job包

在job包下新建MyJib.java

package com.example.demo.job;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyJob {

@Scheduled(fixedRate=1000)
public void run() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}

}

关键点:

类上加注解@Component

方法上加@Scheduled,其中fixedRate=1000表示1秒执行1次

在springboot项目启动类中开启定时任务支持

@EnableScheduling

添加Job包使能扫描到

package com.example.demo;

import java.util.List;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
@MapperScan("com.example.demo.mapper")
@EnableScheduling
@SpringBootApplication(scanBasePackages= {"com.example.demo.controller","com.example.demo.service","com.example.demo.interceptor","com.example.demo.handler","com.example.demo.job"})
public class HelloSpringBootApplication //extends WebMvcConfigurerAdapter{
{


public static void main(String[] args) {

SpringApplication.run(HelloSpringBootApplication.class, args);
}

}

效果

SpringBoot中整合Quartz_spring