quartz2实战
来源:互联网 发布:23周胎儿四维数据 编辑:程序博客网 时间:2024/06/06 07:44
上篇文章介绍了java的几种任务调度实现的方式,今天用一个例子来说明一下
quartz 2的使用方法。
Talk is cheap, show me the code. 废话不多说!
package quartz2;import static org.quartz.JobBuilder.newJob;import static org.quartz.SimpleScheduleBuilder.simpleSchedule;import static org.quartz.TriggerBuilder.newTrigger;import java.text.ParseException;import java.text.SimpleDateFormat;import org.quartz.JobDataMap;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.Trigger;import org.quartz.impl.StdSchedulerFactory;public class QuartzTest { public static void main(String[] args) throws ParseException { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { // Grab the Scheduler instance from the Factory Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put("param1", "a"); jobDataMap.put("param2", "a"); // define the job and tie it to our HelloJob class JobDetail job = newJob(HelloJob.class) .withIdentity("job1", "group1") // set JobDataMap to transfer parameters .setJobData(jobDataMap) .build(); // Trigger the job to run now, and then repeat every 5 seconds Trigger trigger = newTrigger() .withIdentity("trigger1", "group1") //start at //.startAt(format.parse("2016-06-14 17:25:00")) .startNow() .withSchedule(simpleSchedule() .withIntervalInSeconds(5) .repeatForever()) .build(); // Tell quartz to schedule the job using our trigger scheduler.scheduleJob(job, trigger); // start it scheduler.start(); // stop it //scheduler.shutdown(true); } catch (SchedulerException se) { se.printStackTrace(); } }}
package quartz2;import java.util.Date;import org.quartz.Job;import org.quartz.JobDataMap;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class HelloJob implements Job{ @Override public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap dataMap = context.getJobDetail().getJobDataMap(); System.out.println("Hello World! - " + new Date()); System.out.println("param1=" + dataMap.getString("param1")); System.out.println("param2=" + dataMap.getString("param2")); }}
总结:
可以向 JobDataMap 中存入键/值对,那些数据对可在你的 Job 类中传递和进行访问。这是一个向你的 Job 传送配置的信息便捷方法。
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put(“param1”, “a”);
jobDataMap.put(“param2”, “a”);
JobDetail job = newJob(HelloJob.class)
.withIdentity(“job1”, “group1”)
// set JobDataMap to transfer parameters
.setJobData(jobDataMap)
.build();
通过 JobExecutionContext 对象访问 JobDataMap
JobExecutionContext 对象让 Job 能访问 Quartz 运行时候环境和 Job 本身的明细数据。这就类似于在 Java Web 应用中的 servlet 访问 ServletContext 那样。通过 JobExecutionContext,Job 可访问到所处环境的所有信息,包括注册到 Scheduler 上与该 Job 相关联的 JobDetail 和 Triiger
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
System.out.println(“Hello World! - ” + new Date());
System.out.println(“param1=” + dataMap.getString(“param1”));
System.out.println(“param2=” + dataMap.getString(“param2”));
- quartz2实战
- Quartz2集群
- Spring3+Quartz2整合与Servlet+Quartz2整合
- quartz2学习资料
- Quartz2.1.x案例
- Quartz2之入门示例
- quartz2.1.7 表结构
- Quartz2.2.1简单使用
- Quartz2之入门示例
- quartz2.2.1的配置文件
- quartz2.1.7 表结构
- spring4+quartz2.2.1
- Quartz2.x使用
- spring4.1.5+quartz2.2.1
- Spring4+集成quartz2+
- ios--Quartz2绘图
- spring quartz2.2.1 cluster
- Quartz2.2.1集成Spring
- solr group
- DX学习笔记(创建DX自带几何体)
- java多线程中子线程与主线程进行轮换
- java.lang.NoClassDefFoundError: com/google/common/base/Charsets
- ios学习路线—C语言(函数,数组,字符串,指针)
- quartz2实战
- grunt安装及使用
- Android之Activity(四):活动的启动模式
- CentOS 7 下MySQL 5.7.12主从复制架构配置记录(亲自验证可行)
- Core Graphics核心绘图 ( 三) --贝塞尔曲线
- MySQL 库 和 样例表 创建脚本
- 第12课第2.3节 字符设备驱动程序之LED驱动程序_操作LED
- 前端组件 -- select2用法小结
- 【SpringMVC】<context:include-filter>和<context:exclude-filter>使用时要注意的地方