Quartz之定时任务

一 基础概念

1.什么是Quartz?
	Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于		java.util.Timer。但是相较于Timer, Quartz增加了很多功能:
	(1).持久性作业 - 就是保持调度定时的状态;
	(2).作业管理 - 对调度作业进行有效的管理;
2.Quartz 框架的几个核心概念

(1)Job

​ 相当于我们需要执行的任务,一般我们的业务逻辑就放到job里面。
在这里插入图片描述

(2)Trigger

​ 当我们创建好Job后,还需要一个触发器对象去执行Job任务。触发器可以执行Job的执行时间,执行周期,运行次数等等。
在这里插入图片描述

(3)Schedule

​ 当有了任务和 触发器后,需要有一个对象来将两者结合起来,来控制Trigger去执行对应的job,这个时候就要引入Schedule 对象。
在这里插入图片描述

上面三个部分就是Quartz的基本组成部分:

  • 调度器:Scheduler
  • 任务:JobDetail
  • 触发器:Trigger,包括SimpleTrigger和CronTrigger

二 实现代码如下

​ 引入pom文件

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>

​ 1.首先需要定义一个job,执行我们的业务逻辑

public class QuartzInterface implements Job {
	@Override
	public void execute (JobExecutionContext jobExecutionContext) throws JobExecutionException {
		System.out.println ("当前时间为:" + new SimpleDateFormat ("yyy-MM-dd HH:mm:ss").format (new Date ()));
		System.out.println (jobExecutionContext);
	}
}

​ 2.创建一个main函数,来构建 我们的 job 对象, trigger 对象, schedule 对象

public class QuartzSchedule {
	public static void main (String[] args) throws SchedulerException, InterruptedException {
		//创建schedule 对象
		Scheduler scheduler = new StdSchedulerFactory ().getScheduler ();
		//创建JobBuilder 对象
		JobDetail jobBuild = JobBuilder.newJob (QuartzInterface.class).withIdentity ("job1", "group1").build ();
		//创建Trigger 对象
		SimpleTrigger simpleTrigger = TriggerBuilder.newTrigger ().withIdentity ("trigger1", "triggerGroup1").startNow ()
				.withSchedule (SimpleScheduleBuilder.simpleSchedule ()
						.withIntervalInHours (1)
						.repeatForever ()
				).build ();
		scheduler.scheduleJob (jobBuild, simpleTrigger);
		System.out.println ("schedule begin");
		scheduler.start ();
		TimeUnit.MINUTES.sleep (1);
		System.out.println ("schedule end");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值