如果需要让任务只在某个时刻执行一次,或者,在某个时刻开始,然后按照某个时间间隔重复执行,简单地说,如果你想让触发器在<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chsdate isrocdate="False" islunardate="False" day="13" month="1" year="2005" w:st="on"><span lang="EN-US" style="COLOR: windowtext; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana">2007</span><span style="COLOR: windowtext; mso-hansi-font-family: Verdana"><font face="宋体">年</font></span><span lang="EN-US" style="COLOR: windowtext; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana">8月20日上</span></chsdate>午11:23:54秒执行,然后每个隔10秒钟重复执行一次,并且这样重复5次。那么SimpleTrigger 就可以满足你的要求。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
通过这样的描述,你可能很惊奇地发现SimpleTrigger包括这些属性:开始时间,结束时间,重复次数,重复间隔。所有这属性都是你期望它所应具备的,只有end-time属性有一些条目与之关联。
重复次数可能是0,正数或者一个常量值SimpleTrigger.REPEAT_INDEFINITELY。重复间隔时间属性可能是0,正的long型,这个数字以毫秒为单位。注意:如果指定的重复间隔时间是0,那么会导致触发器按照‘重复数量’定义的次数并发触发(或者接近并发)。
Quartz.TriggerUtils类对处理这样的循环也提供了很多支持。
EndTime(如果这个属性被设置)属性会覆盖重复次数属性,这对创建一个每隔10秒就触发一次直到某个时间结束的触发器非常有用,这就可以不计算开始时间和结束时间之间的重复数量。也可以指定一个结束时间,然后使用REPEAT_INDEFINITELY作为重复数量。(甚至可以指定一个大于结束时间之前实际重复次数的整数作为重复次数)。一句话,EndTime属性控制权高于重复次数属性。
SimpleTrigger有几个不同的构造函数,下面我们来看看这结果构造函数:
One of SimpleTrigger's Constructors
publicSimpleTrigger(stringname,
stringgroup,
DateTimestartTime,
NullableDateTimeendTimeendTime,
intrepeatCount,
longrepeatInterval)
SimpleTrigger Example 1 - Create a trigger that fires exactly once, ten seconds from now
SimpleTriggertrigger=newSimpleTrigger("myTrigger",
null,
DateTime.Now.AddSeconds(10),
null,
0,
0L);
SimpleTrigger Example 2 - Create a trigger that fires immediately, then repeats every 60 seconds, forever
SimpleTriggertrigger2=newSimpleTrigger("myTrigger",
null,
DateTime.Now,
null,
SimpleTrigger.REPEAT_INDEFINITELY,
60*1000);
SimpleTrigger Example 3 - Create a trigger that fires immediately, then repeats every 10 seconds until 40 seconds from now
SimpleTriggertrigger=newSimpleTrigger("myTrigger",
"myGroup",
DateTime.Now,
DateTime.Now.AddSeconds(40),
SimpleTrigger.REPEAT_INDEFINITELY,
10*1000);
SimpleTrigger Misfire Instructions——SimpleTrigger的未触发指令
“未触发”发生时,SimpleTrigger有几个指令可以用来通知Quartz进行相关处理。(“未触发”在上节课中介绍过了)。这些指令以常量形式定义在SimpleTrigger本身,这些指令如下:
Misfire Instruction Constants of SimpleTrigger
MISFIRE_INSTRUCTION_FIRE_NOW
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT
回顾前面的课程你可以知道,每个触发器都有一个Trigger.MISFIRE_INSTRUCTION_SMART_POLICY指令可用,并且,这个指令对于每个类型的触发器都是缺省的。
分享到:
相关推荐
Quartz.NET 官方源码及演示例子,官方下载地址:http://sourceforge.net/projects/quartznet/files/quartznet/
前言:8月份翻译了Quartz.NET的官方课程:开源的作业调度框架 - Quartz.NET, 有的朋友抱怨难用,确实,目前Qiartz.NET的最新版本还是0.6,还存在很多bug和不完善的地方。本文使用一系列代码示例介绍 Quartz.NET API...
Quartz.NET 官方源码
Quartz.NET框架的核心是调度器。调度器负责管理Quartz.NET应用运行时环境。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz.NET采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器...
Quartz.NET-2.1.2 官方包
quartz.net+TopShelf
Quartz.net 任务调度数据库持久化和集群;持久化能保证实例重启后job不丢失、 集群能均衡服务器压力和解决单点问题
Autofac.Extras.Quartz, Quartz.Net的Autofac集成 Autofac.Extras.Quartz用于 Quartz.Net的Autofac集成包。Autofac.Extras.Quartz 为每个石英作业创建嵌套的litefime作用域。 完成作业执行后释放嵌套作用域。这允许...
制定Quartz.NET调度计划,以及监控Quartz.NET以及Topshelf运行情况 应用场景:定时Job配置以及定时Job运行情况记录
Quartz.net-几十分钟后执行代码
刘冬编写Spring.NET学习笔记25——整合Quartz.NET例子。 原文: http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_QuartzNet.html
C# 使用Quartz.NET作业调度的简单Windows服务事例。
Quartz 教程 官方开发指南,非常实用和详细。
官方Quartz.NET 2.3.1 源码(官方2015.1.15更新) 附带15个示例 全部可用
C# quartz.net 定时任务源码,实现了远程操控.动态追加dll,可以安装到windows服务中.
C# Quartz.Net定时任务操作明细、完整过程 每种场景均有涉及,代码Copy稍作修改就可使用
Quartz.NET+TopSelf 实现定时服务,支持Job持久化和集群,异常重启 介绍:https://blog.csdn.net/qq_27559331/article/details/105067550 如果你觉得对你有用,麻烦你给个好评!
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或...quartz.net是java的.net移植版本,用法一样。
Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多...
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...