SpringBoot中整合Quartz
原创
©著作权归作者所有:来自51CTO博客作者霸道流氓的原创作品,请联系作者获取转载授权,否则将追究法律责任
简介
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);
}
}
效果