Quartz.NET总结(三)Quartz 配置
前两篇文章,已经介绍了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总结(三)Quartz 配置的更多相关文章
- 作业调度框架 Quartz 学习笔记(三) -- Cron表达式 (转载)
前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的进行任务的触发,就要请出 CronTrigger 这个重要人物了. Cro ...
- 定时组件quartz系列<三>quartz调度机制调研及源码分析
quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言 quratz是目前最为成熟,使用最广泛的j ...
- Quartz学习——Spring和Quartz集成详解(三)
Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度.下面就对Spring集成Quartz进行简单的介绍和示例讲解!和上一节 Quar ...
- 【原理、应用】Quartz集群原理及配置应用
一.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: 强大的 ...
- Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置
Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置 >>>>>>>>>>>>&g ...
- quartz在web.xml的配置
第一步:下载所需的Jar包 commons-beanutils.ja.commons-collections.jar.commons-logging.jar.commons-digester.jar. ...
- quartz的初步总结及配置优化
1.scheduler 1. Scheduler就是Quartz的大脑,所有任务都是由它来设施.Scheduler包含一个两个重要组件: JobStore和ThreadPool.JobStore是会来 ...
- spring Quartz多个定时任务的配置
Quartz多个定时任务的配置 1,配置文件与spring整合,需要在spring 的总配置中一入或者在web.xml中spring监听中加上 ztc_cp-spring-quartz.xml 注:定 ...
- Quartz集群原理及配置应用
1.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: (1) ...
- quartz开源作业调度框架的配置
quartz开源作业调度框架的job服务实现,Quartz是一个完全由java编写的开源作业调度框架,使用时候需要创建一个实现org.quartz.Job接口的java类,Job接口包含唯一的方法: ...
随机推荐
- iOS开发小技巧--自定义带有占位文字的TextView(两种方式)
自定义控件注意或框架注意:自己暴露在外面的属性,一定要重写setter,保证外界与内部的交互性 一.方案一:通过drawRect:方法将文字画到textView中,监听文字改变用的是通知中心(代理也可 ...
- ES6 变量的解构赋值
数组的解构赋值 var [a,b,c] = [1,2,3]; 左边是变量,右边是值,根据数据结构一一对应 只要等号两边的模式相同,左边的变量就会被赋予右边对应的值,必须模式相同 如果等号 ...
- 一个最简单的ftpsever
没有什么事情可以做,无聊的很 写个最简单的ftp吧---说白了就是一个简单的文件上传.QAQ 思路:client --读取文件的一行 然后发到server端 然后server 读取 写入文件的一行 先 ...
- extracting lines bases a list using awk
extracting lines bases a list using awk awk 'NR==FNR{a[$1]=$0; next}($1 in a){print a[$1]"\n&qu ...
- BZOJ 3721: PA2014 Final Bazarek
3721: PA2014 Final Bazarek Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 645 Solved: 261[Submit][ ...
- Input path does not exist: file:/.......
注意看是file不存在并不是hdfs,好奇怪,突然明白应该是路径不对,必须加上hdfs://hostname:port/file. 我为什么饭这样的错误是因为前一阵谢了HDFS的曹组,谢了全局File ...
- Eclipse中Jquery报错
在网上看到很多 jQuery-xxx.js 在eclipse中报错的解决方案大多是说 项目右键 Properties->Validation->JSP Content Validator ...
- 【vijos1900】 学姐吃寿司
https://vijos.org/p/1900 (题目链接) 题意 给出一个01环,问最少经过多少次相邻互换使得所有的0聚在一坨,所有的1聚在一坨. Solution 源自:LCF Solution ...
- POJ1061 青蛙的约会
Description 两 只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它 们出发之前忘记了一件很重要 ...
- CentOS找回root密码
如果忘记了root密码,可以进入单用户模式进行密码重置. 重启系统,在grub的启动菜单中按下e键,然后编辑kernel那一行,在最后的quiet后加上single. 按下Enter后,再按b开机进入 ...