java.util下的Timer,TimerTask和quartz的比较(2)

文章作者 100test 发表时间 2007:03:14 16:31:31
来源 100Test.Com百考试题网


这里面我们可以看到,当我们定义了任务执行 QuartzReport 类后,需要定一个Scheduler类用来执行计划任务。

一个JobDetail 类来描述这个任务的信息,包括任务信息,任务所在组,任务执行的类。

然后还要定义一个 触发器,类似的也包括触发器名,触发器所在组,触发器触发时间设定。

最后是调度器Scheduler类执行计划任务。基本上一个计划任务执行的流程就完成了。

当然,我们还看到了上面红色代表的内容,这些内容主要是提供在job方法执行的时候所需要的参数的提供。这里使用了JobDataMap 类,它其实就是实现了map的特殊应用的一个类,使用方法与Map 很相似。我们可以用 put() 输入参数。在Job类中使用cntxt.getJobDetail()。getJobDataMap()。get("type") 方法获取输入的参数的值。这里的cntxt 是 JobExecutionContext .就是包含任务执行上下文的一个信息类。这样我们的一个基本的任务执行就可以搞定了。

触发器有两类:SimpleTrigger andCronTrigger. .SimpleTrigger主要提供了跟 java.util.Timer 类相似的功能……你可以在里面定义 任务的起始时间,终止时间,任务的执行次数,任务执行的中间间隔 . 而 CronTrigger类主要提供了更高级的任务调度时间设置,例如 每个星期天的早上7点 . CronTrigger的时间设置说明在最后来介绍。

下面我们介绍一下在 J2EE 环境下如何来使用 Quartz .

首先,我们要配置 web.xml ,添加 一下内容,主要是Quartz 的初始化,

QuartzInitializer

Quartz Initializer Servlet

org.quartz.ee.servlet.QuartzInitializerServlet

1

然后还要有一个Quartz 的配置文件 quartz.properties 放置在 WEB-INF/classes目录下面。StdScheduleFactory()会读取它。配置如下#

# Configure Main Scheduler Properties

#

org.quartz.scheduler.instanceName = TestScheduler

org.quartz.scheduler.instanceId = one

#

# Configure ThreadPool

#

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount = 5

org.quartz.threadPool.threadPriority = 4

#


相关文章


java.util下的Timer,TimerTask和quartz的比较(3)
java.util下的Timer,TimerTask和quartz的比较(2)
F3:Sun的新Java脚本语言
多线程编程的设计模式临界区模式(二)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛