由于项目需要,需要做一个定时调度的守护进程,查了一些开源的调度框架,最重选定了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
相关推荐
本文将深入探讨Spring3与Quartz1.8的集成与使用,包括配置方法、API使用以及集群设置。 一、Spring3与Quartz的结合 1. 配置引入 首先,我们需要在Spring的配置文件中引入Quartz的相关依赖。在`beans.xml`中添加...
4. **创建 JobDetail**:在 Spring 配置文件中,通过 `<bean>` 标签创建 `JobDetail` 实例,指定 Job 类及其属性。 5. **定义 Trigger**:使用 `<bean>` 标签创建 `Trigger`,定义任务触发规则,如触发时间、重复...
3. **整合过程**:整合 Spring 2 和 Quartz 需要在 Spring 配置文件中声明 Job 和 Trigger 的 Bean,并指定它们的关联。Spring 可以通过其自身的 JobFactory 来创建 Job 实例,使得 Job 可以利用 Spring 的 DI 功能...
4. **配置文件**:不同版本的Quartz可能有不同的默认配置,因此在迁移时需要注意更新配置文件,以确保新版本能正确运行。 5. **兼容性**:如果你的项目已经基于1.6版本的Quartz,升级到1.8时需要注意兼容性问题,...
2. **配置**:在项目中创建一个配置文件,例如`quartz.properties`,配置数据库连接、job存储策略、线程池大小等参数。 3. **作业和触发器定义**:创建Job类实现`org.quartz.Job`接口,定义任务逻辑。同时,创建...
Quartz的配置可以通过`org.quartz.impl.StdSchedulerFactory`进行设置,可以通过XML文件、Properties文件或Java代码来指定配置细节。配置项包括JobStore的选择、线程池的配置等。 #### 1.11 高级(企业级)属性 ...
- 在 Spring 的配置文件(如 `applicationContext.xml`)中,你需要声明一个 `SchedulerFactoryBean`,这将负责初始化和管理 Quartz Scheduler。同时,配置触发器(Trigger)来决定何时运行 Job。 ```xml ...
最后,将Job和Trigger关联起来,并在Spring配置文件中声明: ```xml <!-- 定义JobDetail --> <bean id="myJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> ...
1. **配置简单**:通过Spring的XML配置或者Java配置,可以方便地声明和管理Quartz的Job和Trigger。 2. **集成优势**:Spring的依赖注入可以注入到Quartz Job中,使得Job实例可以利用Spring容器中的其他服务。 3. **...
5. **commons-digester-1.8.jar**: Commons Digester库允许开发者基于XML配置文件自动创建和初始化Java对象。在Quartz中,它可能被用来解析配置文件,动态地生成和配置调度任务。 6. **commons-logging-1.1.jar**: ...
### xxl-job 架构详解 #### 一、概述 xxl-job 是一款轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。xxl-job 提供了一个非常直观的任务调度界面,并且支持在多台服务器上部署执行...
Quartz提供了API来创建Job(任务)和Trigger(触发器),Job定义了要执行的工作,Trigger决定何时执行。在Spring Boot中,你可以利用`@EnableScheduling`注解开启调度功能,并通过`@Scheduled`注解在方法上定义定时...
│ └─generator.properties 代码生成器,配置文件 │ ├─client 客户端模块,业务前端部分 ``` **技术选型:** - 核心框架:Spring Boot 2.0 - 安全框架:Apache Shiro 1.4 - 视图框架:Spring MVC 5.0...