Quartz Job Scheduler的quartz.xml是框架的核心配置文件,用于定义调度器运行参数、待执行的任务信息以及触发任务执行的时间规则,合理配置该文件是实现定时调度功能的基础。

quartz.xml基础结构
quartz.xml整体采用XML格式编写,根节点为<quartz>,内部主要包含<scheduler>、<jobs>、<triggers>三个核心子节点,分别用于配置调度器属性、任务列表和触发器列表。
调度器属性配置
<scheduler>节点用于设置调度器的基础运行参数,常见配置项如下:
- instanceName:调度器实例名称,用于标识不同的调度器实例
- instanceId:调度器实例ID,集群环境下需要保证唯一
- threadPool:线程池相关配置,指定任务执行使用的线程池类型和参数
任务配置
<jobs>节点下可以定义多个<job>子节点,每个<job>对应一个待执行的任务,需要指定任务的实现类和基础属性。
触发器配置
<triggers>节点下可以定义多个<trigger>子节点,每个<trigger>用于关联一个任务,并定义任务的触发规则,支持简单触发器和Cron表达式触发器两种类型。
完整配置示例
以下是一个包含基础调度器配置、一个任务定义和一个Cron触发器的完整quartz.xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<quartz 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.org/xml/job_scheduling_data_2_0.xsd"
version="2.0">
<!-- 调度器配置 -->
<scheduler>
<instanceName>MyQuartzScheduler</instanceName>
<instanceId>AUTO</instanceId>
<threadPool>
<class>org.quartz.simpl.SimpleThreadPool</class>
<threadCount>10</threadCount>
<threadPriority>5</threadPriority>
</threadPool>
</scheduler>
<!-- 任务列表配置 -->
<jobs>
<job>
<name>demoJob</name>
<group>defaultGroup</group>
<description>示例定时任务</description>
<job-class>com.example.DemoJob</job-class>
<durable>true</durable>
<recover>false</recover>
</job>
</jobs>
<!-- 触发器列表配置 -->
<triggers>
<trigger>
<cron>
<name>demoCronTrigger</name>
<group>defaultGroup</group>
<job-name>demoJob</job-name>
<job-group>defaultGroup</job-group>
<cron-expression>0 0/5 * * * ?</cron-expression>
<misfire-instruction>MISFIRE_INSTRUCTION_FIRE_ONCE_NOW</misfire-instruction>
</cron>
</trigger>
</triggers>
</quartz>
上述示例中,定义了一个名为demoJob的任务,关联的任务实现类为com.example.DemoJob,使用Cron触发器每5分钟执行一次任务。
配置注意事项
在配置quartz.xml时需要注意以下几点:
- 任务实现类需要实现
org.quartz.Job接口,并重写execute方法 - Cron表达式需要符合Quartz的Cron表达式规范,避免语法错误导致触发器无法生效
- 集群环境下需要额外配置数据库存储相关的属性,将任务信息存储到数据库中实现多节点共享
- 如果任务需要传递参数,可以在<job>节点下添加<job-data-map>子节点定义参数键值对
常见配置场景
简单间隔触发任务
如果需要任务按照固定间隔重复执行,可以使用<simple>类型的触发器,配置示例如下:
<trigger>
<simple>
<name>demoSimpleTrigger</name>
<group>defaultGroup</group>
<job-name>demoJob</job-name>
<job-group>defaultGroup</job-group>
<repeat-count>-1</repeat-count>
<repeat-interval>3000</repeat-interval>
</simple>
</trigger>
上述配置会让任务每3秒执行一次,重复次数为无限次。
任务参数传递配置
如果需要给任务传递自定义参数,可以在<job>节点中添加<job-data-map>配置:
<job>
<name>demoJob</name>
<group>defaultGroup</group>
<job-class>com.example.DemoJob</job-class>
<job-data-map>
<entry>
<key>param1</key>
<value>testValue</value>
</entry>
</job-data-map>
</job>
在任务实现类中可以通过context.getJobDetail().getJobDataMap().getString("param1")获取传递的参数值。
Quartz_Job_Schedulerquartz.xml任务调度配置方法修改时间:2026-07-03 22:33:30