所有方法图

CalendarIntervalScheduleBuilder方法

在SimpleScheduleBuilder基础上实现了日、周、月、年

WithInterval:指定要生成触发器的时间单位和间隔。

WithIntervalInHours:指定要生成触发器的间隔按小时来

WithIntervalInMinutes:指定要生成触发器的间隔按分钟来

WithIntervalInSeconds:指定要生成触发器的间隔按秒来

WithIntervalInDays:指定要生成触发器的间隔按日来

WithIntervalInWeeks:指定要生成触发器的间隔按周来

WithIntervalInMonths:指定要生成触发器的间隔按月来

WithIntervalInYears:指定要生成触发器的间隔按年来

  1. var trigger = TriggerBuilder.Create().WithCalendarIntervalSchedule(c=>c .WithInterval(1, IntervalUnit.Millisecond)
  2. .WithIntervalInSeconds(1)
  3. .WithIntervalInMinutes(1)
  4. .WithIntervalInHours(1)
  5. .WithIntervalInDays(1)
  6. .WithIntervalInWeeks(1)
  7. .WithIntervalInMonths(1)
  8. .WithIntervalInYears(1)).Build();

注:按最后一个设定时间为准

最后指定给字段interval和intervalUnit,那么前面就会覆盖

在不指定间隔的时候默认是1,间隔单位是一天

  1. public class CalendarIntervalScheduleBuilder : ScheduleBuilder<ICalendarIntervalTrigger>
  2. {
  3. private int interval = 1;
  4. private IntervalUnit intervalUnit = IntervalUnit.Day;
  5.  
  6. private int misfireInstruction = MisfireInstruction.SmartPolicy;
  7. private TimeZoneInfo timeZone;
  8. private bool preserveHourOfDayAcrossDaylightSavings;
  9. private bool skipDayIfHourDoesNotExist;
  10. }

  1. /// <summary>
  2. /// Supported interval units used by <see cref="ICalendarIntervalTrigger" />.
  3. /// </summary>
  4. public enum IntervalUnit
  5. {
  6. Millisecond,
  7. Second,
  8. Minute,
  9. Hour,
  10. Day,
  11. Week,
  12. Month,
  13. Year
  14. }
  1. /// <summary>
  2. /// Specify the time unit and interval for the Trigger to be produced.
  3. /// </summary>
  4. /// <remarks>
  5. /// </remarks>
  6. /// <param name="interval">the interval at which the trigger should repeat.</param>
  7. /// <param name="unit"> the time unit (IntervalUnit) of the interval.</param>
  8. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  9. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  10. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  11. public CalendarIntervalScheduleBuilder WithInterval(int interval, IntervalUnit unit)
  12. {
  13. ValidateInterval(interval);
  14. this.interval = interval;
  15. intervalUnit = unit;
  16. return this;
  17. }
  18.  
  19. /// <summary>
  20. /// Specify an interval in the IntervalUnit.SECOND that the produced
  21. /// Trigger will repeat at.
  22. /// </summary>
  23. /// <remarks>
  24. /// </remarks>
  25. /// <param name="intervalInSeconds">the number of seconds at which the trigger should repeat.</param>
  26. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  27. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  28. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  29. public CalendarIntervalScheduleBuilder WithIntervalInSeconds(int intervalInSeconds)
  30. {
  31. ValidateInterval(intervalInSeconds);
  32. interval = intervalInSeconds;
  33. intervalUnit = IntervalUnit.Second;
  34. return this;
  35. }
  36.  
  37. /// <summary>
  38. /// Specify an interval in the IntervalUnit.MINUTE that the produced
  39. /// Trigger will repeat at.
  40. /// </summary>
  41. /// <remarks>
  42. /// </remarks>
  43. /// <param name="intervalInMinutes">the number of minutes at which the trigger should repeat.</param>
  44. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  45. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  46. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  47. public CalendarIntervalScheduleBuilder WithIntervalInMinutes(int intervalInMinutes)
  48. {
  49. ValidateInterval(intervalInMinutes);
  50. interval = intervalInMinutes;
  51. intervalUnit = IntervalUnit.Minute;
  52. return this;
  53. }
  54.  
  55. /// <summary>
  56. /// Specify an interval in the IntervalUnit.HOUR that the produced
  57. /// Trigger will repeat at.
  58. /// </summary>
  59. /// <remarks>
  60. /// </remarks>
  61. /// <param name="intervalInHours">the number of hours at which the trigger should repeat.</param>
  62. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  63. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  64. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  65. public CalendarIntervalScheduleBuilder WithIntervalInHours(int intervalInHours)
  66. {
  67. ValidateInterval(intervalInHours);
  68. interval = intervalInHours;
  69. intervalUnit = IntervalUnit.Hour;
  70. return this;
  71. }
  72.  
  73. /// <summary>
  74. /// Specify an interval in the IntervalUnit.DAY that the produced
  75. /// Trigger will repeat at.
  76. /// </summary>
  77. /// <remarks>
  78. /// </remarks>
  79. /// <param name="intervalInDays">the number of days at which the trigger should repeat.</param>
  80. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  81. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  82. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  83. public CalendarIntervalScheduleBuilder WithIntervalInDays(int intervalInDays)
  84. {
  85. ValidateInterval(intervalInDays);
  86. interval = intervalInDays;
  87. intervalUnit = IntervalUnit.Day;
  88. return this;
  89. }
  90.  
  91. /// <summary>
  92. /// Specify an interval in the IntervalUnit.WEEK that the produced
  93. /// Trigger will repeat at.
  94. /// </summary>
  95. /// <remarks>
  96. /// </remarks>
  97. /// <param name="intervalInWeeks">the number of weeks at which the trigger should repeat.</param>
  98. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  99. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  100. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  101. public CalendarIntervalScheduleBuilder WithIntervalInWeeks(int intervalInWeeks)
  102. {
  103. ValidateInterval(intervalInWeeks);
  104. interval = intervalInWeeks;
  105. intervalUnit = IntervalUnit.Week;
  106. return this;
  107. }
  108.  
  109. /// <summary>
  110. /// Specify an interval in the IntervalUnit.MONTH that the produced
  111. /// Trigger will repeat at.
  112. /// </summary>
  113. /// <remarks>
  114. /// </remarks>
  115. /// <param name="intervalInMonths">the number of months at which the trigger should repeat.</param>
  116. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  117. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  118. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  119. public CalendarIntervalScheduleBuilder WithIntervalInMonths(int intervalInMonths)
  120. {
  121. ValidateInterval(intervalInMonths);
  122. interval = intervalInMonths;
  123. intervalUnit = IntervalUnit.Month;
  124. return this;
  125. }
  126.  
  127. /// <summary>
  128. /// Specify an interval in the IntervalUnit.YEAR that the produced
  129. /// Trigger will repeat at.
  130. /// </summary>
  131. /// <remarks>
  132. /// </remarks>
  133. /// <param name="intervalInYears">the number of years at which the trigger should repeat.</param>
  134. /// <returns>the updated CalendarIntervalScheduleBuilder</returns>
  135. /// <seealso cref="ICalendarIntervalTrigger.RepeatInterval" />
  136. /// <seealso cref="ICalendarIntervalTrigger.RepeatIntervalUnit" />
  137. public CalendarIntervalScheduleBuilder WithIntervalInYears(int intervalInYears)
  138. {
  139. ValidateInterval(intervalInYears);
  140. interval = intervalInYears;
  141. intervalUnit = IntervalUnit.Year;
  142. return this;
  143. }

InTimeZone:设置时区

  1. var trigger = TriggerBuilder.Create().WithCalendarIntervalSchedule(c => c.InTimeZone(TimeZoneInfo.Local)).Build();

Quartz.Net系列(八):Trigger之CalendarIntervalScheduleBuilder详解的更多相关文章

  1. SpringBoot系列(十二)过滤器配置详解

    SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...

  2. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  3. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  4. 构建安全的Xml Web Service系列之wse之错误代码详解

    原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...

  5. [js高手之路] es6系列教程 - 对象功能扩展详解

    第一:字面量对象的方法,支持缩写形式 //es6之前,这么写 var User = { name : 'ghostwu', showName : function(){ return this.nam ...

  6. ST MCU_GPIO的八种工作模式详解。

    补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN ...

  7. [转帖]Linux系列之SAR命令使用详解

    Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...

  8. Velocity魔法堂系列二:VTL语法详解

    一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...

  9. quartz (从原理到应用)详解篇(转)

    一.Quartz 基本介绍 1.1 Quartz 概述 1.2 Quartz特点 1.3 Quartz 集群配置 二.Quartz 原理及流程 2.1 quartz基本原理 2.2 quartz启动流 ...

  10. 实时通讯系列目录篇之SignalR详解

    一. 简单说几句 最早使用SignalR的时候大约是两年前了,记得当时是一个OA中消息的实时提醒,轮询的方式有点耗资源,WebSocket写起来又比较麻烦,最终选择了SignalR,当时是什么版本已经 ...

随机推荐

  1. 一款Redis可视化工具:ARDM | 京东云技术团队

    出众的软件有很多,适合自己的才是最好的. Another Redis Desktop Manager 更快.更好.更稳定的Redis桌面(GUI)管理客户端,兼容Windows.Mac.Linux,性 ...

  2. umich cv-3-1

    UMICH CV Neural Network 对于传统的线性分类器,分类效果并不好,所以这节引入了一个两层的神经网络,来帮助我们进行图像分类 可以看出它的结构十分简单,x作为输入层,经过max(0, ...

  3. BSD协议原文及中文翻译

    # BSD协议原文及翻译 参考链接 原文: The following is a BSD license template. To generate your own license, change ...

  4. CodeTON Round 4 (Div. 1 + Div. 2)C

    C. Make It Permutation 我们希望尽可能少地进行操作可以使代价最小,我们如果要排列的话,那些重复的元素我们无论如何都要进行删除的,所以我们可以先把去重的代价计算出来,然后依次枚举排 ...

  5. 教你使用逻辑公式和恒等式等价改写SQL

    今天同事给我一条2秒的SQL看看能不能优化. 原始SQL: SELECT pk_dept FROM aaaa WHERE 1 = 1 AND ((pk_group = '0001A1100000000 ...

  6. (Good topic)双指针:判断子序列

    给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=1 ...

  7. python的websockets库

    安装 pip install websockets 分为客户端和服务端两部分 服务端一般与异步的库一起用 因为客户端不可能只服务一个客户 所以要用异步处理多个客户 以asyncio示例 from we ...

  8. 关于mac电脑突然搜不到家里wifi但手机却能连上的问题解决

    今天用mac电脑时,突然遇到一个奇怪的问题,家里wifi用的好好的,突然就连不上了,在看电脑能搜索到的wifi,居然家里的wifi都没有搜索到,但自己的手机却是正常的,然后我再看看我另外一台windo ...

  9. 基于DotNetty实现自动发布 - 项目的配置与发现

    前言 上一篇,我们实现了基于 DotNetty 的通信基础模块的搭建,本篇,主要实现待发布 Web 项目的集成. 创建待发布项目 为了测试, 我创建了一个基于 .NET 4.8 的 Web 项目 Op ...

  10. 稳了,终于可以通过外网访问 Sealos 中的数据库了!

    喜大普奔,Sealos 中的数据库功能现已全面升级,支持外网访问! 现在你可以从互联网的任何地方访问 Sealos 中的数据库,无论您的应用部署在何种环境,现在都可以轻松通过外网连接到 Sealos ...