quartz1.8 作业job配置文件方法

       由于项目需要,需要做一个定时调度的守护进程,查了一些开源的调度框架,最重选定了quart(http://www.quartz-scheduler.org/),下载了最新的1.8.4版本,同时下了一些相关的学习资料(附在文章的附件上面)。电子资料是基于quart1.5版本的,在新的1.8.4的版本中,quartz.properties和quartz_jobs.xml的配置方式发生了改变,但是网站这方面的资料很少,于是根据quartz 1.8版本的job.xml的配置规范http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd将基于quartz 1.8的配置文件的配置规则进行一下简介。

1. 首先quartz.properties的配置中,关于XML的解析类的配置发生了改变由

 

org.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.JobInitializationPlugin

 变为

 

 

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin

 

2. 基于quartz 1.8的1_8.xsd模式规范得出 的quartz_jobs.xml的配置格式如下

 

<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.ogr/xml/job_scheduling_data_1_8.xsd"
	version="1.8">
	<pre-processing-commands>
		<!--在执行作业和触犯器之前执行的命令-->
		<delete-jobs-in-group>*</delete-jobs-in-group>
		<!-- 删除标示组中的所有作业,如果是“*”,则删除所有组中的作业,同时也会删除与作业有关的触犯器 -->
		<delete-triggers-in-group>*</delete-triggers-in-group>
		<!-- 删除标示组中的所有触犯器,如果是“*”,则删除所有组中的触发器 -->
		<delete-job>
			<!-- 删除指定的作业,同时也会删除与它关联的触犯器 -->
			<name></name>
			<group></group>
		</delete-job>
		<delete-trigger>
			<!-- 删除指定的触犯器 -->
			<name></name>
			<group></group>
		</delete-trigger>
	</pre-processing-commands>
	
	<processing-directives>
		<!-- 在计划作业和触发器是应遵循的命令和原则 -->
		<overwrite-existing-data>true or false</overwrite-existing-data>
		<!-- 是否复写已经存在的任务计划数据,如果为false并且ingore-duplicates非false,那么文件中同名的触发器或作业将会继续存在,则会产生错误-->
		<ignore-duplicates>true or false</ignore-duplicates>
		<!-- 如果为true,计划中的任何同名的作业/触发器将会被忽略,不会产生错误-->
	</processing-directives>
		
	<schedule>
		<job>
			<name>JobName</name>
			<group>JobGroup</group>
			<description></description>
			<job-class></job-class>
			<job-listener-ref></job-listener-ref>
			<!-- volatility,durability,recover必须按顺序设定 -->
			<volatility></volatility>
			<durability></durability>
			<recover></recover>
			<job-data-map>
				<!-- entry可以设定多个-->
				<entry>
					<key></key>
					<value></value>
				</entry>
			</job-data-map>
		</job>
		<trigger>
			<!-- Trigger分为simple,cron,date-interval三种类型,一个trigger中只能指定一种类型-->
			<simple>
				<name></name>
				<group></group>
				<description></description>
				<job-name></job-name>
				<job-group></job-group>
				<calendar-name></calendar-name>
				<volatility></volatility>
				<job-data-map>
					<entry>
						<key></key>
						<value></value>
					</entry>
				</job-data-map>
				<start-time></start-time>
				<end-time></end-time>
				<misfire-instruction></misfire-instruction>
				<repeat-count></repeat-count>
				<repeat-interval></repeat-interval>
			</simple>
			<cron>
				<name></name>
				<group></group>
				<description></description>
				<job-name></job-name>
				<job-group></job-group>
				<calendar-name></calendar-name>
				<volatility></volatility>
				<job-data-map>
					<entry>
						<key></key>
						<value></value>
					</entry>
				</job-data-map>
				<start-time></start-time>
				<end-time></end-time>
				<misfire-instruction></misfire-instruction>
				<cron-expression></cron-expression>
				<time-zone></time-zone>
			</cron>
			<date-interval>
				<name></name>
				<group></group>
				<description></description>
				<job-name></job-name>
				<job-group></job-group>
				<calendar-name></calendar-name>
				<volatility></volatility>
				<job-data-map>
					<entry>
						<key></key>
						<value></value>
					</entry>
				</job-data-map>
				<start-time></start-time>
				<end-time></end-time>
				<misfire-instruction></misfire-instruction>
				<repeat-interval></repeat-interval>
				<repeat-interval-unit></repeat-interval-unit>
			</date-interval>
		</trigger>
	</schedule>
</job-scheduling-data>

  参考资料:

http://foxswily.iteye.com/blog/683007

http://f543711700.iteye.com/blog/831619

 

 

 

你可能感兴趣的:(xml,框架,quartz,Blog)