Java 实现定时任务(Quartz 框架)定时执行某个任务(Maven版)

1、Job

表示一个任务(工作),要执行的具体内容。

2、JobDetail JobDetail

表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要 执行的内容,另外

JobDetail 还包含了这个任务调度的方案和策略。

告诉调度容器,将来执行哪个类(job)的哪个方法

3、Trigger

是一个类,代表一个调度参数的配置,描述触发Job执行的时间触发规则。

一个Job可以对应多个Trigger,但一个Trigger只能对应一个Job

4、Scheduler 代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和Trigger。

Scheduler可以将Trigger绑定到某一JobDetail中,这样当Trigger触发时,对应的Job就被执行。

Note: 当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。

二、入门Demo
1、创建Demo工程,加入依赖

在这里插入图片描述

在这里插入图片描述

2、加入依赖

在这里插入图片描述

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

com.itzheng

JavaMailDemo

0.0.1-SNAPSHOT

org.springframework

spring-context-support

4.2.4.RELEASE

org.springframework

spring-tx

4.2.4.RELEASE

org.quartz-scheduler

quartz

2.2.3

3、创建JobTest类,代码如下

在这里插入图片描述

4、配置文件

添加applicationContext_job.xml文件

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id=“jobDetail”

class=“org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”>

<bean id=“mailTrigger”

class=“org.springframework.scheduling.quartz.CronTriggerFactoryBean”>

<bean id=“startQuartz”

class=“org.springframework.scheduling.quartz.SchedulerFactoryBean”>

5、测试

创建测试类QuartzTest,注:不能使用junit做测试,因为一运行完,程序就结束了。

在这里插入图片描述

6、运行结果(每隔10秒执行一次)

在这里插入图片描述

三、相关概念
1、表达式cron详解

Cron 表达式是一个字符串,字符串以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义。也叫七子表达式。

2、域

1)Seconds(秒):可出现", - * /"四个字符,有效范围为 0-59 的整数

2)Minutes(分钟):可出现", - * /"四个字符,有效范围为 0-59 的整数

3)Hours(小时):可出现", - * /"四个字符,有效范围为 0-23 的整数

4)DayofMonth(日 of 月):可出现", - * / ? LW C"八个字符,有效范围为 1-31 的整数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值