您正在查看 "J2ee" 分类下的文章
2007年11月18日 星期日 下午 12:34
4. 打包 Quartz 应用程序
让我们最后简单讨论打包一个用到了 Quarts 框架的应用程序的流程,也以此来结束本章的内容。
·Quartz 第三方依赖包
从 1.5 版的发行包开始,你会看到一个 <QUARTZ_HOME>\lib 目录,在这个目录,你会发现几个子目录:
·<QUARTZ_HOME>\lib\core
·<QUARTZ_HOME>\lib\optional
·<QUARTZ_HOME>\lib\build |
2007年11月18日 星期日 下午 12:34
·使用 quartz_jobx.xml 文件
代码 3.8 就是目录扫描例子的 Job 定义的 XML 文件。正如代码 3.5 所示例子那样,这里我们用的是声明式途径来配置 Job 和 Trigger 信息的。
代码 3.8. ScanDirectory Job 的 quartz_jobs.xml
|
2007年11月18日 星期日 下午 12:33
3. 声明式部署一个 Job
前面我们讨论过,尽可能的用声明式处理软件配置,其次 才才虑编程式。再来看代码 3.6,如果我们要在 job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译。这种方式只适用于小的例子程序,但是对于一个大且复杂的系统,这就成了一个问题了。因此,假 如能以声明式部署 Quart Job 时,并且也是需求允许的情况下,你应该每次都选择这种方式。
·配置 quartz.properties 文件
文件 quartz.properties 定 |
2007年11月18日 星期日 下午 12:32
·编程式安排一个 Quartz Job
所有的要 Quartz 来执行的作业必须通过调度器来注册。大多情况下,这会在调度器启动前做好。正如本章前面说过,这一操作也提供了声明式与编程式两种实现途径的选择。首先,我们讲解如何用编程的方式;接下来在本章,我们会用声明的方式重做这个练习。
因为每一个 Job 都必须用 Scheduler 来注册,所以先定义一个 JobDetail,并关联到这个 Scheduler 实例。见代码 3.5。
代码 3.5. 编程式安排一个 Job
|
2007年11月18日 星期日 下午 12:31
2. 调度 Quartz ScanDirectoryJob
到 目前为止,我们已经创建了一个 Quartz job,但还没有决定怎么处置它--明显地,我们需以某种方式为这个 Job 设置一个运行时间表。时间表可以是一次性的事件,或者我们可能会安装它在除周日之外的每个午夜执行。你即刻将会看到,Quartz Schduler 是框架的心脏与灵魂。所有的 Job 都通过 Schduler 注册;必要时,Scheduler 也会创建 Job 类的实例,并执行实例的 execute() 方 |
|
|