Quartz的学习

本文主要介绍了Quartz的三大核心概念:调度器、任务和触发器。首先,讲解了如何在Java工程中引入Quartz依赖,包括添加maven依赖。接着,详细说明了如何创建job类来定义任务。最后,探讨了如何配置调度器进行任务调度。

Quartz的三个核心概念:

1、调度器(scheduler)

2、任务(JobDetail)

3、触发器(trigger)

 

第一步:使用java工程导入quartz所依赖的jar包(使用的是maven工程就在pom.xml文件添加依赖)

引入quartz会引入quartz.jar、c3p0.jar、slf4j.jar这三个jar包

第二步:创建job类

import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;


public class MyJob implements Job{

	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		//打印当前的执行时间
		Date date=new Date();//得到当前时间的毫秒
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String currentTime=sf.format(date);
		//具体的业务逻辑,需要做的内容
		System.out.println("执行任务:"+currentTime);
	}

}

第三步:创建调度器类

import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class MyScheduler {
	
	public static void main(String[] args) throws SchedulerException {
		//创建一个Jobdetail实列,将该实例与MyJob class绑定
		JobDetail jobDetail =JobBuilder.newJob(MyJob.class).withIdentity("myJob", "group1").build();

                        System.out.println(jobDetail.getKey().getName());
			System.out.println(jobDetail.getKey().getGroup());
			System.out.println(jobDetail.getJobClass().getName());



		//创建一个Trigger实例,定义该job立即执行,并且每隔5秒钟重复执行一次,直到永远
		Trigger trigger=TriggerBuilder.newTrigger().withIdentity("myTrigger", "group1")
										.startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule()
												.withIntervalInSeconds(5).repeatForever()).build();
		//创建Scheduler实列(将任务和触发器传到调度器里面)
		SchedulerFactory scf=new StdSchedulerFactory();//实列一个工厂
		Scheduler scheduler=scf.getScheduler();
		scheduler.start();//调度器开始执行
		//打印当前的执行时间
		Date date=new Date();//得到当前时间的毫秒
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String currentTime=sf.format(date);
		System.out.println("执行任务:"+currentTime);
		scheduler.scheduleJob(jobDetail,trigger);//将任务和触发器传到调度器里面
	}
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值