多年前使用过quartz,今天又需要再用,而且是在spring boot框架下。很神奇,spring也是十年前用过的。
这里仅记录下完成的最快速和简单的操作,高级的使用以后有空弄明白了再写:
1、增加maven引用
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>
2、编写任务代码:按自己要求编写类即可,每个任务做好标注@Scheduled(...)
package com.my.task; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; @Component @Configurable @EnableScheduling public class HappyBirthday { /** * 使用spring 内置slf4j日志对象 */ private final org.slf4j.Logger logger = LoggerFactory.getLogger(this.getClass()); /** * 30秒间隔启动一次任务 */ @Scheduled(fixedRate = 1000 * 30) public void reportCurrentTime(){ logger.info ("Scheduling Tasks Examples: The time is now " + dateFormat ().format (new Date ())); } /** * 每分钟启动一次任务 */ @Scheduled(cron = "0 */1 * * * * ") public void reportCurrentByCron(){ logger.info ("Scheduling Tasks Examples By Cron: The time is now " + dateFormat ().format (new Date())); } private SimpleDateFormat dateFormat(){ return new SimpleDateFormat ("HH:mm:ss"); } }
3、done