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*/







原创粉丝点击