停止 Scheduler
//waitForJobsToComplete 是否让当前正在进行的Job正常执行完成才停止Scheduler public void shutdown(boolean waitForJobsToComplete) throws SchedulerException; public void shutdown() throws SchedulerException;
其它管理Scheduler 方法见API...
管理 Job
什么是 Quartz Job?
一个Quart Job就是一个任何一个继承job或job子接口的Java类,你可以用这个类做任何事情!
org.quartz.Job 接口
public void execute(JobExecutionContext context)throws JobExecutionException; JobExecutionContext
当 Scheduler 调用一个 Job,一个 JobexecutionContext 传递给 execute() 方法。JobExecutionContext 对象让 Job 能
访问 Quartz 运行时候环境和 Job 本身的数据。类似于在 Java Web 应用中的 servlet 访问 ServletContext 。
通过 JobExecutionContext,Job 可访问到所处环境的所有信息,包括注册到 Scheduler 上与该 Job 相关联的 JobDetail 和 Trigger。
JobDetail
部署在 Scheduler 上的每一个 Job 只创建了一个 JobDetail实例。JobDetail 是作为 Job 实例进行定义的
// Create the JobDetail
JobDetail jobDetail = new JobDetail("PrintInfoJob",Scheduler.DEFAULT_GROUP, PrintInfoJob.class);
// Create a trigger that fires now and repeats forever
Trigger trigger = TriggerUtils.makeImmediateTrigger(
SimpleTrigger.REPEAT_INDEFINITELY, 10000);
trigger.setName("PrintInfoJobTrigger");// register with the Scheduler
scheduler.scheduleJob(jobDetail, trigger);
JobDetail 被加到 Scheduler 中了,而不是 job。Job 类是作为 JobDetail 的一部份,job直到Scheduler准备要执行它的时候才会被实例化的,因此job不存成安全性问题.
使用 JobDataMap 对象设定 Job 状态
public void executeScheduler() throws SchedulerException{
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
logger.info("Scheduler was started at " + new Date());
// Create the JobDetail
JobDetail jobDetail = new JobDetail("PrintJobDataMapJob",Scheduler.DEFAULT_GROUP,PrintJobDataMapJob.class);
// Store some state for the Job
jobDetail.getJobDataMap().put("name", "John Doe");
jobDetail.getJobDataMap().put("age", 23);
jobDetail.getJobDataMap().put("balance",new BigDecimal(1200.37));
// Create a trigger that fires once
Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 10000);
trigger.setName("PrintJobDataMapJobTrigger");
scheduler.scheduleJob(jobDetail, trigger);
}
//Job 能通过 JobExecutionContext 对象访问 JobDataMap
public class PrintJobDataMapJob implements Job {
public void execute(JobExecutionContext context)throws JobExecutionException {
logger.info("in PrintJobDataMapJob");
// Every job has its own job detail
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
// Iterate through the key/value pairs
Iterator iter = jobDataMap.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object value = jobDataMap.get(key);
logger.info("Key: " + key + " - Value: " + value);
}
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29777-6.html
原因是产品质量明显下降
帅呀
这个教授就一逗比