jobstateexample.java

来自「Quartz 是个开源的作业调度框架」· Java 代码 · 共 122 行

JAVA
122
字号
/*  * Copyright 2005 OpenSymphony  *  * Licensed under the Apache License, Version 2.0 (the "License"); you may not  * use this file except in compliance with the License. You may obtain a copy  * of the License at  *  *   http://www.apache.org/licenses/LICENSE-2.0  *    * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the  * License for the specific language governing permissions and limitations  * under the License. *  */package org.quartz.examples.example4;import java.util.Date;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerFactory;import org.quartz.SchedulerMetaData;import org.quartz.SimpleTrigger;import org.quartz.TriggerUtils;import org.quartz.impl.StdSchedulerFactory;/** * This Example will demonstrate how job parameters can be  * passed into jobs and how state can be maintained *  * @author Bill Kratzer */public class JobStateExample {	public void run() throws Exception {		Log log = LogFactory.getLog(JobStateExample.class);		log.info("------- Initializing -------------------");		// First we must get a reference to a scheduler		SchedulerFactory sf = new StdSchedulerFactory();		Scheduler sched = sf.getScheduler();		log.info("------- Initialization Complete --------");		log.info("------- Scheduling Jobs ----------------");		// get a "nice round" time a few seconds in the future....		long ts = TriggerUtils.getNextGivenSecondDate(null, 10).getTime();		// job1 will only run 5 times, every 10 seconds		JobDetail job1 = new JobDetail("job1", "group1", ColorJob.class);		SimpleTrigger trigger1 = new SimpleTrigger("trigger1", "group1", "job1", "group1",				new Date(ts), null, 4, 10000);		// pass initialization parameters into the job		job1.getJobDataMap().put(ColorJob.FAVORITE_COLOR, "Green");		job1.getJobDataMap().put(ColorJob.EXECUTION_COUNT, 1);				// schedule the job to run		Date scheduleTime1 = sched.scheduleJob(job1, trigger1);		log.info(job1.getFullName() +				" will run at: " + scheduleTime1 +  				" and repeat: " + trigger1.getRepeatCount() + 				" times, every " + trigger1.getRepeatInterval() / 1000 + " seconds");		// job2 will also run 5 times, every 10 seconds		JobDetail job2 = new JobDetail("job2", "group1", ColorJob.class);		SimpleTrigger trigger2 = new SimpleTrigger("trigger2", "group1", "job2", "group1",				new Date(ts + 1000), null, 4, 10000);		// pass initialization parameters into the job		// this job has a different favorite color!		job2.getJobDataMap().put(ColorJob.FAVORITE_COLOR, "Red");		job2.getJobDataMap().put(ColorJob.EXECUTION_COUNT, 1);				// schedule the job to run		Date scheduleTime2 = sched.scheduleJob(job2, trigger2);		log.info(job1.getFullName() +				" will run at: " + scheduleTime1 +  				" and repeat: " + trigger1.getRepeatCount() + 				" times, every " + trigger1.getRepeatInterval() / 1000 + " seconds");		log.info("------- Starting Scheduler ----------------");		// All of the jobs have been added to the scheduler, but none of the jobs		// will run until the scheduler has been started		sched.start();		log.info("------- Started Scheduler -----------------");				log.info("------- Waiting 60 seconds... -------------");		try {			// wait five minutes to show jobs			Thread.sleep(60L * 1000L); 			// executing...		} catch (Exception e) {		}		log.info("------- Shutting Down ---------------------");		sched.shutdown(true);		log.info("------- Shutdown Complete -----------------");		SchedulerMetaData metaData = sched.getMetaData();		log.info("Executed " + metaData.numJobsExecuted() + " jobs.");	}	public static void main(String[] args) throws Exception {		JobStateExample example = new JobStateExample();		example.run();	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?