作业调度框架-Quartz

一、Quartz概述:基于Java开发开源的作业调度框架,也就是批处理框架。有数据库支持,集群,插件,EJB 作业预构建,JavaMail ,支持 cron-like 表达式等。

1.常用API:

(1)Job接口:任务接口,留给开发者去实现的接口,当执行任务时,执行的是该接口的execute方法。

(2)Trigger接口:触发器,规定任务执行的时间点和执行的频率。

(3)Scheduler :任务调度器,负责执行任务。

2.Trigger的实现类:通过JobBuilder获取。 (1)SimpleTrigger类:普通触发器器类

(2)CronTrigger类:这个触发器可以通过Cron表达式指定 [秒] [分] [小时] [日] [月] [周] [年]比较常用的类

Cron表达式的取值范围

位置

时间域名

允许值

允许的特殊字符

1

0-59

, - * /

2

分钟

0-59

, - * /

3

小时

0-23

, - * /

4

日期

1-31

, - * ? / L W C

5

月份

1-12

, - * /

6

星期

1-7

, - * ? / L C #

7

年(可选)

空值1970-2099

, - * /

特殊字符含义:

Cron表达式生成地址:在线Cron表达式生成器-奇Q工具网

3. Scheduler 的实现类:RemoteScheduler、StdScheduler可以通过 SchdulerFactory接口获取。 工厂的两个实现类:StdSchedulerFactory、DirectSchedulerFactory。

常用api参考:SpringBoot 之 Quartz 使用 - 程序员小明1024 - 博客园

参考:Quartz入门看这一篇文章就够了-CSDN博客

任务定时调度——quartz_scheduler必须调sart才可以运行吗-CSDN博客

理论参考:https://www.w3cschool.cn/quartz_doc/quartz_doc-ib1j2d6x.html

整合springbootSpringBoot整合Quartz实现定时任务动态自定义和可视化_在原有的springboot项目中集成可视化定时任务分析管理-CSDN博客

 

二、代码实现步骤

1.导入依赖

<!--        quartz调度框架-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-quartz</artifactId>

        </dependency>

2.定义一个任务类,实现job接口,重写execute()方法,方法就是需要做的事。

public class Myjob implements Job{

@Override

public void execute(JobExecutionContext context) throws JobExecutionException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("任务被执行...."+sdf.format(new Date()));

}

}

3.写一个方法启动调度,一般放在监听器中,后期通过向调度器中加job任务即可。

@Component

public class myListener implements ApplicationListener {

@EventListener

@SneakyThrows

@Override

public void onApplicationEvent(ApplicationEvent event) {

//1.创建自定义的任务(job)对象

JobDetail job = JobBuilder.newJob(Myjob.class).build();

//2.创建触发器(Trigger)对象,并设置触发规则,每格五秒触发一次Job

Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(5)).build();

//3.创建任务调度(Scheduler)对象

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

//4.将任务和触发器绑定

scheduler.scheduleJob(job, trigger);

//5.启动任务

scheduler.start();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值