Quartz.Net系列(八):Trigger之CalendarIntervalScheduleBuilder详解
所有方法图
CalendarIntervalScheduleBuilder方法
在SimpleScheduleBuilder基础上实现了日、周、月、年
WithInterval:指定要生成触发器的时间单位和间隔。
WithIntervalInHours:指定要生成触发器的间隔按小时来
WithIntervalInMinutes:指定要生成触发器的间隔按分钟来
WithIntervalInSeconds:指定要生成触发器的间隔按秒来
WithIntervalInDays:指定要生成触发器的间隔按日来
WithIntervalInWeeks:指定要生成触发器的间隔按周来
WithIntervalInMonths:指定要生成触发器的间隔按月来
WithIntervalInYears:指定要生成触发器的间隔按年来
- var trigger = TriggerBuilder.Create().WithCalendarIntervalSchedule(c=>c .WithInterval(1, IntervalUnit.Millisecond)
- .WithIntervalInSeconds(1)
- .WithIntervalInMinutes(1)
- .WithIntervalInHours(1)
- .WithIntervalInDays(1)
- .WithIntervalInWeeks(1)
- .WithIntervalInMonths(1)
- .WithIntervalInYears(1)).Build();
注:按最后一个设定时间为准
最后指定给字段interval和intervalUnit,那么前面就会覆盖
在不指定间隔的时候默认是1,间隔单位是一天
- public class CalendarIntervalScheduleBuilder : ScheduleBuilder<ICalendarIntervalTrigger>
- {
- private int interval = 1;
- private IntervalUnit intervalUnit = IntervalUnit.Day;
- private int misfireInstruction = MisfireInstruction.SmartPolicy;
- private TimeZoneInfo timeZone;
- private bool preserveHourOfDayAcrossDaylightSavings;
- private bool skipDayIfHourDoesNotExist;
- }
- /// <summary>
- /// Supported interval units used by <see cref="ICalendarIntervalTrigger" />.
- /// </summary>
- public enum IntervalUnit
- {
- Millisecond,
- Second,
- Minute,
- Hour,
- Day,
- Week,
- Month,
- Year
- }
- /// <summary>
- /// Specify the time unit and interval for the Trigger to be produced.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="interval">the interval at which the trigger should repeat.</param>
- /// <param name="unit"> the time unit (IntervalUnit) of the interval.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithInterval(int interval, IntervalUnit unit)
- {
- ValidateInterval(interval);
- this.interval = interval;
- intervalUnit = unit;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.SECOND that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInSeconds">the number of seconds at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInSeconds(int intervalInSeconds)
- {
- ValidateInterval(intervalInSeconds);
- interval = intervalInSeconds;
- intervalUnit = IntervalUnit.Second;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.MINUTE that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInMinutes">the number of minutes at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInMinutes(int intervalInMinutes)
- {
- ValidateInterval(intervalInMinutes);
- interval = intervalInMinutes;
- intervalUnit = IntervalUnit.Minute;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.HOUR that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInHours">the number of hours at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInHours(int intervalInHours)
- {
- ValidateInterval(intervalInHours);
- interval = intervalInHours;
- intervalUnit = IntervalUnit.Hour;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.DAY that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInDays">the number of days at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInDays(int intervalInDays)
- {
- ValidateInterval(intervalInDays);
- interval = intervalInDays;
- intervalUnit = IntervalUnit.Day;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.WEEK that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInWeeks">the number of weeks at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInWeeks(int intervalInWeeks)
- {
- ValidateInterval(intervalInWeeks);
- interval = intervalInWeeks;
- intervalUnit = IntervalUnit.Week;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.MONTH that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInMonths">the number of months at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInMonths(int intervalInMonths)
- {
- ValidateInterval(intervalInMonths);
- interval = intervalInMonths;
- intervalUnit = IntervalUnit.Month;
- return this;
- }
- /// <summary>
- /// Specify an interval in the IntervalUnit.YEAR that the produced
- /// Trigger will repeat at.
- /// </summary>
- /// <remarks>
- /// </remarks>
- /// <param name="intervalInYears">the number of years at which the trigger should repeat.</param>
- /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
- /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
- /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
- public CalendarIntervalScheduleBuilder WithIntervalInYears(int intervalInYears)
- {
- ValidateInterval(intervalInYears);
- interval = intervalInYears;
- intervalUnit = IntervalUnit.Year;
- return this;
- }
InTimeZone:设置时区
- var trigger = TriggerBuilder.Create().WithCalendarIntervalSchedule(c => c.InTimeZone(TimeZoneInfo.Local)).Build();
Quartz.Net系列(八):Trigger之CalendarIntervalScheduleBuilder详解的更多相关文章
- SpringBoot系列(十二)过滤器配置详解
SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...
- 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...
- Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...
- 构建安全的Xml Web Service系列之wse之错误代码详解
原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...
- [js高手之路] es6系列教程 - 对象功能扩展详解
第一:字面量对象的方法,支持缩写形式 //es6之前,这么写 var User = { name : 'ghostwu', showName : function(){ return this.nam ...
- ST MCU_GPIO的八种工作模式详解。
补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN ...
- [转帖]Linux系列之SAR命令使用详解
Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...
- Velocity魔法堂系列二:VTL语法详解
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...
- quartz (从原理到应用)详解篇(转)
一.Quartz 基本介绍 1.1 Quartz 概述 1.2 Quartz特点 1.3 Quartz 集群配置 二.Quartz 原理及流程 2.1 quartz基本原理 2.2 quartz启动流 ...
- 实时通讯系列目录篇之SignalR详解
一. 简单说几句 最早使用SignalR的时候大约是两年前了,记得当时是一个OA中消息的实时提醒,轮询的方式有点耗资源,WebSocket写起来又比较麻烦,最终选择了SignalR,当时是什么版本已经 ...
随机推荐
- 一款Redis可视化工具:ARDM | 京东云技术团队
出众的软件有很多,适合自己的才是最好的. Another Redis Desktop Manager 更快.更好.更稳定的Redis桌面(GUI)管理客户端,兼容Windows.Mac.Linux,性 ...
- umich cv-3-1
UMICH CV Neural Network 对于传统的线性分类器,分类效果并不好,所以这节引入了一个两层的神经网络,来帮助我们进行图像分类 可以看出它的结构十分简单,x作为输入层,经过max(0, ...
- BSD协议原文及中文翻译
# BSD协议原文及翻译 参考链接 原文: The following is a BSD license template. To generate your own license, change ...
- CodeTON Round 4 (Div. 1 + Div. 2)C
C. Make It Permutation 我们希望尽可能少地进行操作可以使代价最小,我们如果要排列的话,那些重复的元素我们无论如何都要进行删除的,所以我们可以先把去重的代价计算出来,然后依次枚举排 ...
- 教你使用逻辑公式和恒等式等价改写SQL
今天同事给我一条2秒的SQL看看能不能优化. 原始SQL: SELECT pk_dept FROM aaaa WHERE 1 = 1 AND ((pk_group = '0001A1100000000 ...
- (Good topic)双指针:判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=1 ...
- python的websockets库
安装 pip install websockets 分为客户端和服务端两部分 服务端一般与异步的库一起用 因为客户端不可能只服务一个客户 所以要用异步处理多个客户 以asyncio示例 from we ...
- 关于mac电脑突然搜不到家里wifi但手机却能连上的问题解决
今天用mac电脑时,突然遇到一个奇怪的问题,家里wifi用的好好的,突然就连不上了,在看电脑能搜索到的wifi,居然家里的wifi都没有搜索到,但自己的手机却是正常的,然后我再看看我另外一台windo ...
- 基于DotNetty实现自动发布 - 项目的配置与发现
前言 上一篇,我们实现了基于 DotNetty 的通信基础模块的搭建,本篇,主要实现待发布 Web 项目的集成. 创建待发布项目 为了测试, 我创建了一个基于 .NET 4.8 的 Web 项目 Op ...
- 稳了,终于可以通过外网访问 Sealos 中的数据库了!
喜大普奔,Sealos 中的数据库功能现已全面升级,支持外网访问! 现在你可以从互联网的任何地方访问 Sealos 中的数据库,无论您的应用部署在何种环境,现在都可以轻松通过外网连接到 Sealos ...