Quartz执行多作业,JobDataMap传值
来源:互联网 发布:淘宝怎么用邮箱注册 编辑:程序博客网 时间:2024/06/09 19:34
在Quartz调度框架中,每个作业将被连接到一个唯一的触发,并且由调度器运行它。在 Quartz 中,一个触发器触发多个作业是不可以的。
package quartz;import org.quartz.*;public class HelloJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { JobKey key = context.getJobDetail().getKey(); JobDataMap dataMap = context.getJobDetail().getJobDataMap(); String jobSays = dataMap.getString("jobSays"); float myFloatValue = dataMap.getFloat("myFloatValue"); System.out.println("Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue); }}
package quartz;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * Created by liuyazhou on 2017/5/21. */public class JobA implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("Job A is runing //every 5 seconds "); }}
package quartz;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * Created by liuyazhou on 2017/5/21. */public class JobB implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("Job B is runing"); }}
package quartz;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * Created by liuyazhou on 2017/5/21. */public class JobC implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("Job C is runing"); }}
org.quartz.scheduler.instanceName = MySchedulerorg.quartz.threadPool.threadCount = 3 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
import org.quartz.*;import org.quartz.impl.StdSchedulerFactory;import quartz.HelloJob;import quartz.JobA;import quartz.JobB;import quartz.JobC;/** * @author */public class Main { public static void main(String[] args) throws SchedulerException { //1 JobDetail job = JobBuilder.newJob(HelloJob.class) .withIdentity("JobName", "group1") .usingJobData("jobSays", "Hello World") .usingJobData("myFloatValue", 3.141f) .build(); //5秒执行一次 /*Trigger trigger = TriggerBuilder.newTrigger().withIdentity("TriggerName", "group1").withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();*/ //2,5秒执行一次,上面的生成trigger的两种方法都行 Trigger trigger = TriggerBuilder .newTrigger() .withIdentity("TriggerName", "group1") .withSchedule( CronScheduleBuilder.cronSchedule("0/1 * * * * ?")) .build(); JobKey jobKeyA = new JobKey("jobA", "group1"); JobDetail jobA = JobBuilder.newJob(JobA.class) .withIdentity(jobKeyA).build(); JobKey jobKeyB = new JobKey("jobB", "group1"); JobDetail jobB = JobBuilder.newJob(JobB.class) .withIdentity(jobKeyB).build(); JobKey jobKeyC = new JobKey("jobC", "group1"); JobDetail jobC = JobBuilder.newJob(JobC.class) .withIdentity(jobKeyC).build(); Trigger trigger1 = TriggerBuilder .newTrigger() .withIdentity("dummyTriggerName1", "group1") .withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); Trigger trigger2 = TriggerBuilder .newTrigger() .withIdentity("dummyTriggerName2", "group1") .withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); Trigger trigger3 = TriggerBuilder .newTrigger() .withIdentity("dummyTriggerName3", "group1") .withSchedule( CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) .build(); //3 schedule it Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); //4 scheduler.scheduleJob(job, trigger); scheduler.scheduleJob(jobA, trigger1); scheduler.scheduleJob(jobB, trigger2); scheduler.scheduleJob(jobC, trigger3); }}/*Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Job A is runing //every 5 secondsJob B is runingJob C is runingInstance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Job A is runing //every 5 secondsJob B is runingJob C is runingInstance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Instance group1.JobName of DumbJob says: Hello World, and val is: 3.141Job A is runing //every 5 secondsJob B is runingJob C is runing*/
阅读全文
0 0
- Quartz执行多作业,JobDataMap传值
- org.quartz.JobDataMap 对象
- Quartz-JobDataMap 参数传递
- Quartz定时器---JobDataMap的运用
- Quartz定时器 ----JobDataMap的运用
- Quartz 有状态的JobDataMap
- 【Quartz】深入Job、JobDetail、JobDataMap、Trigger
- 【Quartz】深入Job、JobDetail、JobDataMap、Trigger
- JobDataMap
- 不支持类型 Quartz.JobDataMap,因为它实现 IDictionary。
- Quartz入门实例4-通过JobDataMap实现数据的传输
- Quartz 2.2.1学习笔记 (二) Jobs、JobDetail、JobDataMap
- Quartz 2.2.1学习笔记 (二) Jobs、JobDetail、JobDataMap
- quartz报错:org.quartz.JobPersistenceException: Couldn't store job: JobDataMap values must be Strings w
- 一个简单的使用Quartz和Oozie调度作业给大数据计算平台执行
- Quartz进行作业调度
- Quartz作业调度
- 作业调度之quartz
- 谷歌的小弟自定义View篇笔记(杂)
- ContentProvider
- USB键盘协议程序之字符重复无数次
- hihoCoder 1524 : 逆序对 (树状数组)
- 实际工作中:----dubbo+zookeeper实现服务远程调用
- Quartz执行多作业,JobDataMap传值
- C语言--变量
- QQ聊天消息展示,提交评论实现
- 常用的dos命令介绍
- VCS-5续2 LVM和VxVM
- 关于File文件类使用
- 二极管结构和工作原理
- 《Ray Tracing in One Weekend》——Chapter 2: The vec3 class
- 4. ESP8266固件的编译(NONOS SDK固件 AT固件)