简单学习Quartz框架

Quartz学习笔记

一、简单了解什么是Quartz

  Quartz是一个功能丰富的开源作业调度库,几乎可以集成到任何Java应用程序中——从最小的独立应用程序到最大的电子商务系统。Quartz可以用来创建简单或复杂的时间表,以执行数十个、数百个甚至数万个工作;这些作业的任务被定义为标准Java组件,可以执行您通过编程让它们执行的几乎任何事情。Quartz调度器包括许多企业级特性,比如对JTA事务和集群的支持。

二、Quartz框架的入门程序

1.创建java项目并导入Quartz的jar包

   到官网下载quartz-2.2.3-distribution.tar.gz,解压得到Quartz的jar包,导入项目。
在这里插入图片描述

2.创建服务类:

package service;

public class RemindService {
    
    
		public void callClassMeeting() {
    
    
			System.out.println("计划任务提醒");
		}
}

3.编写任务类:

package service;

import java.util.List;

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class PlanJob implements Job {
    
    
	private RemindService remindService;
	@Override
	public void execute(JobExecutionContext jobContext)
		throws JobExecutionException{
    
    
		System.out.println("触发器的key值(触发器组名+触发器名)"+jobContext.getTrigger().getKey()+"\t任务的key值 "
				+ "(任务组名+任务名)"+jobContext.getJobDetail().getKey());						
		remindService = new RemindService();
		remindService.callClassMeeting();

	}
	
	
}

4.编写工作类,并利用Quartz API进行配置。

package test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

import service.PlanJob;

public class TesrJob {
    
    
	public void doRemind() 
		throws SchedulerException,InterruptedException, ParseException{
    
    
			//创建任务
			JobDetail job=JobBuilder.newJob(PlanJob.class).withIdentity("Job","gr1").build();			
			
			//创建TriggerBulder对象
			TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
			
			//为triggerBuilder创建唯一标识符
			triggerBuilder=triggerBuilder.withIdentity("tr1","gr1");
			
			//设置触发器的开始执行时间:立即执行
				triggerBuilder.startNow();
			
			//创建一个SimpleScheduleBuilder对象
			SimpleScheduleBuilder scheduleBuilder=SimpleScheduleBuilder.simpleSchedule();
			//设置触发器的开始执行时间为间隔1秒
			scheduleBuilder=scheduleBuilder.withIntervalInMilliseconds(1000);
			//设置额外重复执行的次数
			scheduleBuilder.withRepeatCount(5);
			
			//根据TriggerBuilder对象和SimpleScheduleBuilder对象创建一个简单地触发器SimpleTrigger对象
			SimpleTrigger simpleTrigger=triggerBuilder.withSchedule(scheduleBuilder).build();
			
			//创建调度器工厂
			SchedulerFactory sfc=new StdSchedulerFactory();
			
			//创建一个调度器
			Scheduler sched=sfc.getScheduler();
			
			//在调度器中,注册任务和触发器
			sched.scheduleJob(job, simpleTrigger);
			
			//执行调度
			sched.start();
			//关闭调度
			//sched.shutdown();
			
		}
	
	public static void main(String [] agrs) throws SchedulerException, InterruptedException, ParseException {
    
    
		TesrJob testjob=new TesrJob();
			testjob.doRemind();
	}
}


运行结果:在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46046423/article/details/114644693