.net如何使用job作业

job作业通过配置xml文档及其他一些配置定时轮询方法,使用比较灵活。

第一步:quartz_jobs.xml文档格式如下:

<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><!--job节点 配置说明name(必填) 任务名称,同一个group中多个job的name不能相同,若未设置group则所有未设置group的job为同一个分组,如:<name>sampleJob</name>group(选填) 任务所属分组,用于标识任务所属分组,如:<group>sampleGroup</group>description(选填) 任务描述,用于描述任务具体内容,如:<description>Sample job for Quartz Server</description>job-type(必填) 任务类型,任务的具体类型及所属程序集,格式:实现了IJob接口的包含完整命名空间的类名,程序集名称,如:<job-type>Quartz.Server.SampleJob, Quartz.Server</job-type>durable(选填) 具体作用不知,官方示例中默认为true,如:<durable>true</durable>recover(选填) 具体作用不知,官方示例中默认为false,如:<recover>false</recover>--><!--cron节点配置说明复杂任务触发器使用cron表达式定制任务调度(强烈推荐)name(必填) 触发器名称,同一个分组中的名称必须不同group(选填) 触发器组description(选填) 触发器描述job-name(必填) 要调度的任务名称,该job-name必须和对应job节点中的name完全相同job-group(选填) 调度任务(job)所属分组,该值必须和job中的group完全相同start-time(选填) 任务开始执行时间utc时间,北京时间需要+08:00,如:<start-time>2012-04-01T08:00:00+08:00</start-time>表示北京时间2012年4月1日上午8:00开始执行,注意服务启动或重启时都会检测此属性,若没有设置此属性,服务会根据cron-expression的设置执行任务调度;若start-time设置的时间比当前时间较早,则服务启动后会忽略掉cron-expression设置,立即执行一次调度,之后再根据cron-expression执行任务调度;若设置的时间比当前时间晚,则服务会在到达设置时间相同后才会应用cron-expression,根据规则执行任务调度,一般若无特殊需要请不要设置此属性cron-expression(必填) cron表达式,如:<cron-expression>0/10 * * * * ?</cron-expression>每10秒执行一次--><!--Cron表达式使用说明Cron表达式被用来配置CronTrigger实例。Cron表达式是一个由7个子表达式组成的字符串。每个子表达式都描述了一个单独的日程细节。这些子表达式用空格分隔,分别表示:1. Seconds 秒2. Minutes 分钟3. Hours 小时4. Day-of-Month 月中的天5. Month 月6. Day-of-Week 周中的天7. Year (optional field) 年(可选的域)一个cron表达式的例子字符串为"0 0 12 ? * WED",这表示“每周三的中午12:00”。单个子表达式可以包含范围或者列表。例如:前面例子中的周中的天这个域(这里是"WED")可以被替换为"MON-FRI", "MON, WED, FRI"或者甚至"MON-WED,SAT"。通配符('*')可以被用来表示域中“每个”可能的值。因此在"Month"域中的*表示每个月,而在Day-Of-Week域中的*则表示“周中的每一天”。所有的域中的值都有特定的合法范围,这些值的合法范围相当明显,例如:秒和分域的合法值为0到59,小时的合法范围是0到23,Day-of-Month中值得合法凡范围是0到31,但是需要注意不同的月份中的天数不同。月份的合法值是0到11。或者用字符串JAN,FEB MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV 及DEC来表示。Days-of-Week可以用1到7来表示(1=星期日)或者用字符串SUN, MON, TUE, WED, THU, FRI 和SAT来表示.'/'字符用来表示值的增量,例如, 如果分钟域中放入'0/15',它表示“每隔15分钟,从0开始”,如果在份中域中使用'3/20',则表示“小时中每隔20分钟,从第3分钟开始”或者另外相同的形式就是'3,23,43'。'?'字符可以用在day-of-month及day-of-week域中,它用来表示“没有指定值”。这对于需要指定一个或者两个域的值而不需要对其他域进行设置来说相当有用。'L'字符可以在day-of-month及day-of-week中使用,这个字符是"last"的简写,但是在两个域中的意义不同。例如,在day-of-month域中的"L"表示这个月的最后一天,即,一月的31日,非闰年的二月的28日。如果它用在day-of-week中,则表示"7"或者"SAT"。但是如果在day-of-week域中,这个字符跟在别的值后面,则表示"当月的最后的周XXX"。例如:"6L" 或者 "FRIL"都表示本月的最后一个周五。当使用'L'选项时,最重要的是不要指定列表或者值范围,否则会导致混乱。'W' 字符用来指定距离给定日最接近的周几(在day-of-week域中指定)。例如:如果你为day-of-month域指定为"15W",则表示“距离月中15号最近的周几”。'#'表示表示月中的第几个周几。例如:day-of-week域中的"6#3" 或者 "FRI#3"表示“月中第三个周五”。作为一个例子,下面的Quartz.NET克隆表达式将在星期一到星期五的每天上午10点15分执行一个作业。0 15 10 ? * MON-FRI下面的表达式0 15 10 ? * 6L 2007-2010将在2007年到2010年的每个月的最后一个星期五上午10点15分执行作业。--><schedule>    <!--Control状态【每秒】--><job><name>ControlJob</name><group>ControlJobGroup</group><description>control status change</description><job-type>SiaSun.LMS.WinService.ControlJob, WinService</job-type><durable>true</durable><recover>false</recover></job><trigger><cron><name>ControlJobTrigger</name><group>Group1</group><description>control status change</description><job-name>ControlJob</job-name><job-group>ControlJobGroup</job-group><cron-expression>0/1 * * * * ?</cron-expression></cron></trigger>    <!--【每秒】--><job><name>ApplyJob</name><group>ApplyJobGroup</group><description>deal with task apply</description><job-type>SiaSun.LMS.WinService.ApplyJob, WinService</job-type><durable>true</durable><recover>false</recover></job><trigger><cron><name>ApplyJobTrigger</name><group>Group2</group><description>deal with task apply</description><job-name>ApplyJob</job-name><job-group>ApplyJobGroup</job-group><cron-expression>0/1 * * * * ?</cron-expression></cron></trigger></schedule>
</job-scheduling-data>

第二步:xml文档配置完成后,在主方法中新建类方法继承自IJob,并重写Execute方法即可。

   public class ApplyJob : IJob{public void Execute(IJobExecutionContext context){try{Program.hostLog.Debug("进入ApplyJob");Program.BaseService.sManage.HandleControlApply();}catch (Exception ex){Program.hostLog.Error("轮询处理异常", ex);}finally{Program.hostLog.Debug("离开ApplyJob");}}}

第三步:最后引用Quartz.dll。

.NET Quartz 配置JOB相关推荐

  1. quartz配置_基于spring-boot 2.x +quartz 的CRUD任务管理系统

    基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目. 开发环境 JDK1.8.Maven.Eclipse 技术栈 SpringBoot 2.0.1.thyme ...

  2. 使用spring+quartz配置多个定时任务

    首先引入 quartz jar包: 创建java类: package com.tcwl.vsmp.loanmgt.message;import com.tcwl.vsmp.external.const ...

  3. 集群环境下,谁偷走quartz配置的定时任务

    错误现象: 在本地开发环境中,应用服务启动后TRIGGER_STATE直接就变为ERROR 前段时间在项目中,使用quartz配置一个定时任务,定时任务都持久化到oracle数据库中,但是应用服务器启 ...

  4. 用@Quartz配置启动任务遇到“A component required a bean named 'Myjob1' that could not be found”的问题

    先上SpringBoot项目搭建@Quartz系统任务启动流程,报错解决方法在文章末尾 1.新建项目 ①新建SpringBoot项目,只需添加Web和Quartz Scheduler依赖 ②使用@En ...

  5. Quartz配置和运用详解

    本文转自:http://topmanopensource.iteye.com/blog/1123824 最近工作需要学习quartz,那么必须首先了解三个概念: 调度器:负责调度作业和触发器: 触发器 ...

  6. Spring使用Quartz配置调度事务

    package QuartzTest; import java.util.Date; public class CourseService ...{    public void start()... ...

  7. JNDI(datasource)在tomcat,JBOSS下的spring+quartz配置

    由于项目中多个小应用(类似插件)需要使用数据库连接池,不能为每一个应用中配置连接池.故采用JNDI的模式进行配置. 我们使用的web服务器有tomcat和jboss两种.分别介绍其在这两种服务器下并且 ...

  8. 一个基于.Net 5开发的轻量级Quartz配置中心 - QuartzCore.Blazor

    项目简介 QuartzCore.Blazor 是一个基于 .Net5 开发的轻量级 Quartz 作业配置中心,实践应用 Ant Design Blazor 和 FreeSql 两个技术, 对这两个技 ...

  9. Quartz配置上次任务没有执行完,下次任务推迟执行

    Quartz轮训任务,需要配置一个参数,这个参数来控制Job任务是否并行,这个参数是concurrent.默认是true,参考spring源码如下: 如果concurrent设为true,到了指定的时 ...

  10. Quartz配置参考

    0 前言 Quartz的配置通常是使用properties文件结合StdSchedulerFactory完成的.StdSchedulerFactory读取配置文件,并实例化scheduler. 默认情 ...

最新文章

  1. linux学习第三天 (Linux就该这么学)
  2. 【五校联考6day2】er
  3. git 拉取远程分支到本地
  4. 汇编 begin_【精品】小学作文500字汇编九篇
  5. 如何创建一个自定义的`ErrorHandlerMiddleware`方法
  6. 本地套接字示例[来源:Advanced Linux Programming]
  7. frontcon函数用不了_C++复制构造函数与析构函数
  8. Qt工作笔记-QGraphics框架中,给图像中的点连线【获取场景中的数据】【有坑】
  9. .html()与.text()区别与辨析
  10. .NET Framework 3.5中的LINQ简介
  11. NTP反射放大***分析
  12. 说说自己,向前看远些,路还要走下去的
  13. 文本挖掘学习笔记(二):文档信息向量化与主题关键词提取
  14. Predicting Human Mobility via Graph Convolutional Dual-attentive Networks
  15. linux curl命令详解(附使用示例)
  16. 内蒙古计算机考研学校选择,2020内蒙古考研指南-这些没有A+的院校你会选择吗...
  17. 【区块链论文整理】ICDE 篇
  18. 小米手机解BL锁时 进入fastboot之后 PC端手机解锁工具一直显示未连接手机
  19. 对 Viper RGB 驱动多个缓冲区溢出漏洞的分析
  20. 超简单!Android 播放流媒体

热门文章

  1. Autodesk AutoCAD 2023 Mac中文版安装方法
  2. Tomcat导入J2EE项目教程
  3. 猿创征文|网络安全的十大经典工具介绍
  4. 关于修改DSDT出现的常见问题
  5. 视频教程-微信小程序开发实战第三季-微信开发
  6. ps 毛发 边缘_【常用抠图小技巧】PS调整边缘扣毛发
  7. wacom linux 驱动下载,Ubuntu 8.04如何安装WACOM驱动
  8. 酷q显示无法连接到服务器,本机酷Q与服务器nonebot建立通信
  9. 【持续更新】高通蓝牙SoC系列文章索引
  10. 用u盘刻录装服务器系统盘,光盘系统刻录到U盘上教程