你的位置:首页 > ASP.net教程

[ASP.net教程]Quartz.NET总结(三)Quartz 配置


Quartz相关的配置有三个quartz.config、quartz_jobs.

1.  quartz.config

# You can configure your scheduler in either <quartz> configuration section# or in quartz properties file# Configuration section has precedence quartz.scheduler.instanceName = ServerScheduler# configure thread pool infoquartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartzquartz.threadPool.threadCount = 10quartz.threadPool.threadPriority = Normal # job initialization plugin handles our 

  

2. quartz_jobs.

<?"1.0" encoding="UTF-8"?><!-- This file contains job definitions in schema version 2.0 format --><job-scheduling-data "http://quartznet.sourceforge.net/JobSchedulingData" "http://www.w3.org/2001/" version="2.0"> <processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives>
<schedule>
<!--定义Job1-->
<job>
<name>Job1</name>
<group>JobGroup</group>
<description>Quartz Job1</description>
<job-type>Quartz.Net.Jobs.Job1,Quartz.Net.Jobs</job-type> <durable>true</durable> <recover>false</recover> </job> <!--定义Job2--> <job> <name>Job2</name> <group>JobGroup</group> <description>Quartz Job2</description> <job-type>Quartz.Net.Jobs.Job2,Quartz.Net.Jobs</job-type> <durable>true</durable> <recover>false</recover> </job>
<!--定义Job1 触发器 每30秒执行一次Job1任务--> <trigger> <cron> <name>Job1Trigger</name> <group>JobTriggerGroup</group> <job-name>Job1</job-name> <job-group>JobGroup</job-group> <cron-expression>0/30 * * * * ?</cron-expression> </cron> </trigger> <!--定义Job2 触发器 每分钟执行一次Job2任务--> <trigger> <cron> <name>Job2Trigger1</name> <group>JobTriggerGroup</group> <job-name>Job2</job-name> <job-group>JobGroup</job-group> <cron-expression>0 * * * * ?</cron-expression> </cron> </trigger> </schedule></job-scheduling-data>

quartz_jobs.

 

job 任务,这个节点是用来定义每个具体的任务的,多个任务请创建多个job节点即可

 

1. name  任务名称,同一个group中多个job的name不能相同,如:<name>Job1</name>

2. group 任务所属分组,用于标识任务所属分组,如:<group>sampleGroup</group>

3. job-type 任务的具体类型及所属程序集,实现了IJob接口的包含完整命名空间的类名,程序集名称,如: <job-type>Quartz.Net.Jobs.Job1,Quartz.Net.Jobs</job-type>

 

其余节点按照默认设置即可。

 

trigger 任务触发器,主要定义在什么时间,以何种方式触发任务(job),同一个job可以定义多个trigger ,各个trigger 各自独立的执行调度,每个trigger 中必须定义一种触发器类型(calendar-interval、simple、cron)。

calendar-interval使用比较少,一般都是simple和cron,这里就不做说明。

 

simple 简单任务的触发器,可以调度用于重复执行的任务

1. name 触发器名称,同一个分组中的名称必须不同

2. group 触发器组

3. description 触发器描述

4. job-name 要调度的任务名称,该job-name必须和对应job节点中的name完全相同

5. job-group 调度任务(job)所属分组,该值必须和job中的group完全相同

6. start-time 任务开始执行时间utc时间,北京时间需要+08:00,默认可以不用设置。如:<start-time>2015-04-01T08:00:00+08:00</start-time>

7. repeat-count  任务执行次数,如:<repeat-count>-1</repeat-count>表示无限次执行,<repeat-count>10</repeat-count>表示执行10次

8. repeat-interval 任务触发间隔,单位为毫秒,如:<repeat-interval>10000</repeat-interval> 每10秒执行一次

 

cron 复杂任务触发器,主要使用cron表达式定制任务调度,一般用的较多的都是cron触发器。关于cron表达式的写法,请参考前一篇博客。

1. name 触发器名称,同一个分组中的名称必须不同

2. group 触发器组

3. description 触发器描述

4. job-name 要调度的任务名称,注意该job-name必须和对应job节点中的name完全相同,如:<job-name>Job1</job-name>

5. job-group 调度任务(job)所属分组,该值必须和job中的group完全相同

6. start-time 任务开始执行时间utc时间,北京时间需要+08:00,默认可以不用设置。如:<start-time>2015-04-01T08:00:00+08:00</start-time>

7. cron-expression 任务执行的cron表达式,如:<cron-expression>0/30 * * * * ?</cron-expression> 每30秒执行一次

 

根据实际项目中的需要灵活配置quartz_jobs.

 

3. log4net.config

(略),请参考其他关于log4net的配置。