前两篇文章,已经介绍了Quartz.NET的使用和Cron表达式表达式的写法,今天说一说Quartz的配置,Quartz相关的配置有三个quartz.config、quartz_jobs.xml、log4net.config。其中quartz.config是基本的配置, quartz_jobs.xml是相关的job 任务配置文件,log4net.config则是日志记录的配置。

1.  quartz.config ,是Quartz.NET是基本的配置,主要是配置quartz_jobs.xml 的路径,及其他相关的参数。默认的quartz任务配置文件为quartz_jobs.xml,在quartz服务的根目录下,可以通过quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml进行设置。

# 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 info

quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz

quartz.threadPool.threadCount = 10

quartz.threadPool.threadPriority = Normal

# job initialization plugin handles our xml reading, without it defaults are used

quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz

quartz.plugin.xml.fileNames = ~/quartz_jobs.xml

# export this server to remoting context

quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz

quartz.scheduler.exporter.port = 555

quartz.scheduler.exporter.bindName = QuartzScheduler

quartz.scheduler.exporter.channelType = tcp

quartz.scheduler.exporter.channelName = httpQuartz

2. quartz_jobs.xml,是相关的job 任务配置文件。主要是有job和trigger两个组要的节点。

<?xml version="1.0" encoding="UTF-8"?>

<!-- This file contains job definitions in schema version 2.0 format -->

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>

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

 

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

2. group 任务所属分组,用于标识任务所属分组,如:<group>JobGroup</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. job-name 要调度的任务名称,该job-name必须和对应job节点中的name完全相同 ,如:<job-name>Job1</job-name>

4. job-group 调度任务(job)所属分组,该值必须和job中的group完全相同,如:<job-group>JobGroup</job-group>

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

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

cron 复杂任务触发器,主要使用cron表达式定制任务调度,一般用的较多的都是cron触发器。关于cron表达式的写法,请参考前一篇博客《Quartz.NET总结(二)CronTrigger和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完全相同,如:<job-group>JobGroup</job-group>

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

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

根据实际项目中的需要灵活配置quartz_jobs.xml,不需要再进行额外的修改其他后台代码,实现灵活的多任务调度,需要注意的是修改了quartz_jobs.xml文件后,quartz服务默认不会重新加载该文件,需要重启下服务才行。

3. log4net.config

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

Quartz.NET总结(三)如配置jobs的更多相关文章

  1. quartz开源作业调度框架的配置

    quartz开源作业调度框架的job服务实现,Quartz是一个完全由java编写的开源作业调度框架,使用时候需要创建一个实现org.quartz.Job接口的java类,Job接口包含唯一的方法: ...

  2. spring Quartz多个定时任务的配置

    Quartz多个定时任务的配置 1,配置文件与spring整合,需要在spring 的总配置中一入或者在web.xml中spring监听中加上 ztc_cp-spring-quartz.xml 注:定 ...

  3. EBS中启用OAF页面个性化三个配置

    启用OAF页面个性化三个配置(Profiles) FND:诊断英文为FND: Diagnostics,用于设置是否显示“关于此页” 个性化自助定义英文为Personalize Self-Service ...

  4. c3p0三种配置方式(automaticTestTable)

    c3p0的配置方式分为三种,分别是http://my.oschina.net/lyzg/blog/551331.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文 ...

  5. Linux操作系统下三种配置环境变量的方法

    现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作 ...

  6. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  7. struts2拦截器interceptor的三种配置方法

    1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ...

  8. Linux操作系统下三种配置环境变量的方法——转载

    来源:赛迪网 作者:millio       现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/e ...

  9. tomcat下jndi的三种配置方式

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

随机推荐

  1. eclipse设置护眼模式,就是设置为黑色背景,

    效果如上图 首先下载jar包,然后放到下面的目录,然后打开eclipse然后选择哪个dark的那个主题就可以了 然而这里只是设置软件部分的, 代码的背景和高亮显示,是在另外一个地方设置, 一般是下载e ...

  2. 使用 API 网关构建微服务-2

    「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...

  3. Bootstrap模板-Amaretti.2.6.2

    密罐地址: 点我下载

  4. SAP QM 主检验特性主数据关键字段解释

    SAP QM 主检验特性主数据关键字段解释 检验特征是QM模块中的一项重要主数据,可以说是QM检验业务的构成基础,它通过体现在Task list (检验任务清单)和/或material specifi ...

  5. Csharp:HttpWebRequest or HttpClient

    /// <summary> /// Define other methods and classes here /// </summary> /// <param nam ...

  6. CentOS 7上的系统管理之:Systemd和systemctl

    参考资料: Chapter 10. Managing Services with systemd Red Hat Enterprise Linux 7 | Red Hat Customer Porta ...

  7. CentOS 7上的进程管理

    一些杂乱的基础概念 程序是一种静态的文件,躺在磁盘上.而进程则是将程序运行起来放置于内存中.因此进程就是运行中的程序,是程序运行起来的一个实例.同一个程序可以运行为多个进程/实例. 进程之间有父子关系 ...

  8. eclipse 的安装

    打开eclipse官网 https://www.eclipse.org/ 点击此处 再点击 最后点击下载 然后一路下一步安装即可 添加中文语言包 打开eclipse官网 https://www.ecl ...

  9. Linux使用alias自定义命令自定义快捷键

    比如我经常需要进入一个很深的目录如 /home/walking/weblogic/devlop/script/application/.../... 这样每次进入这个目录操作是不是很麻烦,可能有时候记 ...

  10. Mysql - 高可用方案之MMM(一)

    一.概述 本文将介绍mysql的MMM(Master-Master replication manager for MySQL)方案.官方文档地址:https://mysql-mmm.org/star ...