此篇博文主要介绍Quartz在Maven项目的应用,Quartz怎样在项目中启动,怎样实现一个简单的Quartz案例? 步骤: ①在项目新建一个quartz包 ②在pom.xml文件添加quartz依赖 <!--引入quartz依赖--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version> </dependency> ③在quartz包下新建 DemoQuartz.java类(定时器的启动类) package com.zs.quartz.quartz.demo; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import java.util.Date; /** * @author 小思 * @PackageName:com.zs.quartz.quartz.demo * @ClassName: DemoQuartz * @Description:启动定时器 * @date 2018/11/21 21:25 */ public class DemoQuartz { public static void main(String[] args) throws Exception { //1.创建Scheduler的工厂 SchedulerFactory sf = new StdSchedulerFactory(); //2.从工厂中获取调度器实例 Scheduler scheduler = sf.getScheduler(); //3.创建JobDetail(作业信息) JobDetail jb = JobBuilder.newJob(MyJob.class) .withDescription("this is a test job") //job的描述 .withIdentity("testJob", "testGroup") //job 的name和group .build(); //向任务传递数据 JobDataMap jobDataMap = jb.getJobDataMap(); jobDataMap.put("uname", "张三"); //任务运行的时间,SimpleSchedle类型触发器有效 long time = System.currentTimeMillis() + 3 * 1000L; //3秒后启动任务 Date statTime = new Date(time); //4.创建Trigger //使用SimpleScheduleBuilder或者CronScheduleBuilder Trigger t = TriggerBuilder.newTrigger() .withDescription("") .withIdentity("ramTrigger", "ramTriggerGroup") .startAt(statTime) //默认当前时间启动 //普通计时器 //.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3).withRepeatCount(3))//间隔3秒,重复3次 //表达式计时器 .withSchedule(CronScheduleBuilder.cronSchedule("0/3 * * * * ?")) //3秒执行一次 .build(); //5.注册任务和定时器 scheduler.scheduleJob(jb, t); //6.启动 调度器 scheduler.start(); } } MyJob.java(任务类) package com.zs.quartz.quartz.demo; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import java.util.Date; /** * @author 小思 * @PackageName:com.zs.quartz.quartz.demo * @ClassName: MyJob * @Description:定时器执行方法类 * @date 2018/11/21 21:27 */ public class MyJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("定时器任务执行" + new Date(System.currentTimeMillis())); JobDataMap map=jobExecutionContext.getMergedJobDataMap(); System.out.println("参数值"+map.get("uname")); } } 然后启动DemoQuartz类,控制台信息: 每三秒执行一次作业类,此作业类可以做你想定时去检查或者完成的任务。 |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 18:02 , Processed in 0.030841 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.