Quartz Job Scheduling Framework[翻译]第八章. 使用 Quartz 插件 (第四部分)

四. 使用多个插件

你喜欢多少个,就可以在 quartz.properties 文件中注册多少个插件。然而,加载和初始化的顺序却不能保证,因为 Quartz 加载先把所有的属性到一个 Map 中,然后按照从 Map 中取出的顺序遍历插件。

为规避这一限制,你可以创建一个 Quartz 插件作为父插件,然后以给定的顺序加载其他多个插件。代码 8.6 显示了 ParentPlugin 长什么样子。

代码 8.6. ParentPlugin 能以特定的顺序加载子插件

代码 8.6 中的插件基什么也不做,也就只能算作一个插件,但是它扮演着子插件的加载器。一个子插件是个有效的 Quartz 插件,它可以是你所编写的或者是包含在框架中的。

·配置文件 quartz.properties 中的 ParentPlugin

要配置 quartz.properties 文件中的 ParentPlugin,仅要加入作为其他插件的父类。那就是,添加如下的行:

org.quartz.plugin.parentPlugin.class = org.cavaness.quartzbook.chapter8.ParentPlugin

接着,添加子插件,并按你想要的加载顺序排列,就是指定一个逗号分隔的插件列表:

org.quartz.plugin.parentPlugin.childPluginNames=org.quartz.plugins.history
  .LoggingJobHistoryPlugin,org.quartz.plugins.history.LoggingTriggerHistoryPlugin

[译者 Unmi 注:注意,上面是写在一行里的,因页面排版本的原因写成两行了]

如代码 8.6 所示,ParentPlugin 拆开逗号分隔的字符串并以它们在列表中的顺序来加载插件。这看起来好像相当复杂,但却能很好的完成工作。将来的 Quartz 框架版本也许支持插件的按序加载机制,但是现在,ParentPlugin 工作的很好。

类别: Quartz. 标签: , . 阅读(88). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar
wpDiscuz