周期任务的跳过规则,指重复任务按频率生成实例时,遇到节假日、非工作日、指定日期区间或已存在未完成实例等条件,系统不生成这一次实例,或把这一次实例顺延到下一个可用时点的约定。它回答的是“这一次要不要发”,与重复频率、生效时间共同构成周期任务的触发规则。下面从定义、边界、要素构成和相邻机制几个方面说明。
要点总览(TL;DR)
- 周期任务的跳过规则,是重复任务按频率生成实例时,判断某一次实例是否生成、或是否改到下一个可用时点生成的排除性约定,回答的是“这一次发不发”。
- 触发规则由三个要素构成:重复频率控制间隔与节奏,生效时间控制起止与首次触发,跳过规则控制单次实例的取舍。
- 跳过是本次不生成,顺延是本次改到下一个可用时点生成,暂停是一段时间内整体停发,终止是结束整个重复安排。
- 跳过只作用于尚未生成的那一次实例,不删除已生成实例,也不改变后续频率;不同工具支持的跳过条件范围不同。
- 排查周期任务未按预期生成时,按频率、生效时间、跳过规则的顺序逐项检查,多数问题能定位到具体环节。
周期任务跳过规则指什么
跳过规则是周期任务触发规则中的一个判断条件,作用对象是“某一次即将生成的实例”。当重复频率算出下一次应该生成的日期后,跳过规则再判断这个日期是否满足排除条件:满足则不生成,不满足则照常生成。它决定的是单次实例的取舍,不改变整个重复安排的存在,也不改变频率本身。
理解这个定义,需要把周期任务的触发过程拆成三步。第一步由重复频率决定节奏,比如每天、每周五、每月最后一个工作日;第二步由生效时间决定这套安排从哪天开始、到哪天结束、首次触发落在哪一天;第三步由跳过规则对每一次到点的实例做过滤。三步依次执行,跳过规则处在最后一环,只对已经排到日程上的那一次实例表态。
因此,跳过规则的一句话定义可以概括为:在周期任务按频率生成实例时,用于判断某一次实例是否生成、或是否改到下一个可用时点生成的排除性约定。它不负责“多久发一次”,也不负责“从什么时候开始发”,这两件事分别由重复频率和生效时间承担。
需要区分的是,跳过规则作用于单次实例,整体重复安排仍然保留。比如一个每周五提交周报的任务,某个周五因节假日被跳过,下一个周五仍会按原频率继续生成,任务本身没有被取消,频率也没有被改写。
跳过规则的适用范围与不适用范围
跳过规则的判断对象是“这一次实例发不发”,因此凡是围绕单次实例是否生成的条件,都属于它的范围。常见的适用条件包括:遇到法定节假日不生成;遇到周末等非工作日不生成;落在指定日期区间内不生成,例如长假区间、公司统一停工期;检测到上一期实例仍未完成时不再叠加生成新实例。不同工具提供的可选项不同,具体以所用工具的配置项为准。
不属于跳过规则的内容,主要是相邻主题里的机制。项目模板解决的是“一类任务如何被复用和批量建立”,它决定任务的结构和初始内容,不判断某一次实例是否生成。跨对象自动流转与状态联动规则解决的是“一个对象的状态变化如何触发另一个对象的动作”,它处理对象之间的联动,也不处理周期实例的日期取舍。这两类内容分别属于项目计划管理和研发流程自动化的范畴,与跳过规则是并列关系,而非包含关系。
还需要把跳过与几个容易混淆的动作分开。跳过是本次不生成;顺延是本次改到下一个可用时点生成;暂停是一段时间内整体停止生成,恢复后继续;终止是结束整个重复安排,之后不再生成。暂停和终止改变的是整体安排的状态,跳过只影响单次实例,这是范围上的关键差别。
| 类别 | 典型内容 | 判断对象 |
|---|---|---|
| 属于跳过规则 | 节假日、非工作日、指定日期区间、已存在未完成实例 | 某一次实例是否生成 |
| 不属于跳过规则 | 项目模板的建立与复用 | 任务结构与初始内容 |
| 不属于跳过规则 | 跨对象自动流转与状态联动 | 对象之间的触发动作 |
| 相邻但不同 | 顺延、暂停、终止 | 改期、整体停发、整体结束 |
触发规则由哪些要素构成
周期任务的触发规则通常由三个要素组成,各自控制不同层面。重复频率控制间隔与节奏,回答“多久发一次”;生效时间控制起止与首次触发,回答“从什么时候开始按频率发、到什么时候为止”;跳过规则控制单次实例的取舍,回答“这一次发不发”。三者组合后,才得到实际的实例生成结果。
以“每周五提交周报”为例。重复频率设为每周、周五;生效时间设为某月1日开始、年底结束;跳过规则设为节假日不生成。三者组合后,系统在每个周五检查是否为节假日,不是则生成,是则跳过,直到年底结束。如果去掉跳过规则,节假日也会照常生成;如果把生效时间提前,首次触发就会提前。任何一个要素变化,结果都会不同。
| 要素 | 控制对象 | 典型取值 |
|---|---|---|
| 重复频率 | 实例之间的间隔与节奏 | 每天、每周指定星期、每月指定日期、每月最后一个工作日 |
| 生效时间 | 安排的起止与首次触发 | 开始日期、结束日期、首次触发日 |
| 跳过规则 | 单次实例是否生成或改期 | 节假日跳过、非工作日跳过、指定区间跳过、存在未完成实例时跳过 |
三个要素的分工可以用一句话记住:频率决定“排期”,生效时间决定“排期的起止”,跳过规则决定“排到的那一次要不要落地”。排查周期任务没有按预期生成时,也应按这个顺序逐项检查,先看频率是否设对,再看生效时间是否覆盖目标日期,最后看跳过规则是否把这一次过滤掉了。
在团队日常的重复工作组织中,这套触发逻辑需要落到具体的任务管理工具里执行。ONES 的任务管理支持把重复性工作组织为周期任务,围绕任务实例的状态推进协作;跳过规则的具体可选项与配置方式,以实际使用版本的界面和说明为准。把频率、生效时间和跳过条件在配置阶段写清楚,可以减少后续“为什么这次没生成”的反复确认。
跳过规则与顺延、暂停、终止的区别
这四种机制都出现在周期任务的运行过程中,但行为结果差别明显。跳过是本次不生成,该时点直接略过;顺延是本次不在原时点生成,而是移到下一个可用时点生成,实例数量不减少,只是日期后移;暂停是在一段时间内整体停止生成,期间所有实例都不产生,恢复后按原安排继续;终止是结束整个重复安排,此后不再生成任何实例。
区分它们的关键,是看“整体安排是否还在”和“这一次实例是否还存在于某个时点”。跳过和顺延都保留整体安排,区别在于这一次实例是被取消还是被改期;暂停保留整体安排但临时停发;终止则让整体安排结束。实际配置时,如果目标是“节假日不打扰大家”,用跳过;如果目标是“节假日那期挪到节后第一个工作日补上”,用顺延;如果目标是“项目暂停两个月,期间不发”,用暂停;如果目标是“这个周期任务不再需要了”,用终止。
| 机制 | 本次实例 | 整体安排 | 典型场景 |
|---|---|---|---|
| 跳过 | 不生成 | 保留 | 节假日不生成周报提醒 |
| 顺延 | 移到下一个可用时点生成 | 保留 | 节假日那期挪到节后补交 |
| 暂停 | 期间均不生成 | 保留,恢复后继续 | 项目停摆期间暂停检查任务 |
| 终止 | 不再生成 | 结束 | 阶段性工作完成后关闭周期任务 |
这四种机制在具体工具中的命名和可配置程度并不一致,有的工具把跳过与顺延合并为一个“遇特殊情况如何处理”的选项,有的工具只提供其中一部分。阅读配置界面时,应以实际行为描述为准,而不是只看选项名称。
一个具体例子与常见误解
假设团队规定每周五提交周报,周期任务按每周五生成。某周五恰逢法定节假日。若跳过规则设为“节假日跳过”,这一周的周报实例不会生成,下周五照常生成,本周没有补交记录;若设为“顺延到下一个工作日”,这一期实例会移到节后第一个工作日生成,团队仍需提交,只是日期后移。两种设置下,后续周五的生成节奏都不受影响。这个例子说明,跳过规则改变的是单次实例的去留,不改变频率,也不改变整体安排。
围绕跳过规则,常见的误解有三个。
误解一:跳过会删除已生成的实例。跳过发生在生成判断阶段,针对的是尚未生成的那一次实例;已经生成并进入处理流程的实例,不会因为跳过规则被删除。若需要处理已生成的实例,属于实例本身的编辑或关闭操作,与跳过规则是两件事。
误解二:跳过会改变后续频率。跳过只对触发判断命中的那一次生效,下一个周期仍按原频率计算。连续多次被跳过,也不会累积成频率变化;如果发现后续节奏异常,应检查频率和生效时间是否被修改。
误解三:所有工具的跳过选项相同。不同工具对跳过条件的支持范围不同,有的只支持节假日,有的支持非工作日和指定日期区间,有的还支持检测未完成实例。配置前应查看所用工具的实际选项,不能把一款工具的行为直接套到另一款上。
把这三个误解与前面的要素表对照,可以形成一条自查路径:先确认这一次实例是否已经生成,再确认频率和生效时间是否被改动,最后确认所用工具的跳过选项是否与预期一致。按这条路径排查,多数“周期任务没按预期生成”的问题都能定位到具体环节。
常见问题
跳过规则和顺延规则应该怎么选?
看这一次实例是否还需要完成。如果目标是节假日不打扰团队、这一期直接略过,用跳过;如果这一期内容仍需提交、只是日期不合适,用顺延,把实例移到下一个可用时点生成。两者的共同点是整体重复安排都保留,区别在于这一次实例是被取消还是被改期。选择前先确认业务上是否允许缺一期,再决定配置方式。
连续多次被跳过,会不会影响后面的生成节奏?
不会。跳过只对触发判断命中的那一次实例生效,下一个周期仍按原频率计算,连续跳过也不会累积成频率变化。如果发现后续节奏异常,应检查重复频率和生效时间是否被修改,而不是归因于跳过规则。排查时先看频率设置,再看生效时间是否覆盖目标日期,最后看跳过条件是否把某一次过滤掉了。
已经生成的实例还能被跳过规则处理吗?
不能。跳过规则发生在生成判断阶段,针对的是尚未生成的那一次实例;已经生成并进入处理流程的实例,不会因为跳过规则被删除或撤回。若需要处理已生成的实例,属于实例本身的编辑、关闭或重新安排,与跳过规则是两件事。配置跳过条件时,应把它理解为“生成前的过滤”,而不是“生成后的清理”。
配置跳过规则时,需要先确认哪些前提?
先确认三件事:一是重复频率和生效时间是否已经设对,因为跳过规则处在触发流程的最后一环,前面的排期错了,跳过判断也失去意义;二是所用工具实际支持哪些跳过条件,节假日、非工作日、指定日期区间、存在未完成实例时跳过,不同工具的覆盖范围不同;三是团队对缺期的接受程度,决定用跳过还是顺延。把这三项在配置阶段写清楚,可以减少后续反复确认。
周期任务没有按预期生成,应该按什么顺序排查?
按触发流程的顺序排查:先看重复频率是否设成了预期的间隔和节奏;再看生效时间是否覆盖了目标日期,首次触发日是否正确;最后看跳过规则是否把这一次实例过滤掉了。如果这三项都正常,再确认实例是否已经生成但未被注意到。这个顺序与触发规则的执行顺序一致,能避免在错误的环节反复调整。
