头图

一、简介

定时任务是根据设定的一个指定时间及循环周期,每到一个时间周期,都会触发一次任务,可类比为一个闹钟。

 title=

二、交互流程

新建定时任务,配置任务的名称、存储路径、执行时间与循环周期。

 title=

可以在任务页面中构建相应的执行函数,即到达指定时间触发后做什么,并控制任务开启生效。

 title=

任务执行记录展示根据触发时间分类的“待执行”、“执行中”、“已执行”任务,包括执行时间、执行反馈等信息。

 title=

三、触发时机

定时任务区别于事件的指定动作触发,而是到达一个指定时间后触发。对于周期任务,则可以在触发时间的基础上,增加重复周期和结束时间的设定。

 title=

一、开始时间

在单次定时任务中,【开始时间】就是指定的任务触发时间;

在周期定时任务中,【开始时间】既是任务第一次开始执行的时间,也会作为时间周期范围的起始位置;

二、重复周期

即循环的周期类型,可以是不重复、每小时、每天、每周、每月、每年、自定义。

假设开始时间选定的是2024-01-01 12:30:00 (周一)。

不重复,任务仅触发一次;

每小时,默认按照选定【开始时间】的分、秒,每小时执行,即12:30、13:30、14:30;

每天,默认按照选定【开始时间】的小时、分、秒,每天执行,即 01-01 12:30、01-02 12:30;

每周,默认按照选定【开始时间】的星期、小时、分、秒,每周执行,即 01-01 12:30(周一)、01-08 12:30(周一);

每月,默认按照选定【开始时间】的日期、小时、分、秒,每月执行,即 01-01 12:30、02-01 12:30;

每年,默认按照选定【开始时间】的月份、日期、小时、秒,每年执行,即 2024-01-01 12:30:00、2025-01-01 12:30:00;

自定义,允许按照灵活间隔执行,间隔为分、小时、天、周、月、年;

  • 分,每几分钟执行一次;
  • 小时,每几个小时执行一次;
  • 天,每几天执行一次;
  • 周,每几周执行一次,包括具体在周几;
  • 月,每几月执行一次,包括具体在哪一天;
  • 年,每几年执行一次,包括具体在哪个月的哪一天;

三、结束时间

只在选择了重复周期中重复选项时生效,也就是周期定时任务中时间周期范围的结束位置;

四、跳过节假日

只在选择了重复周期中重复选项时生效,当任务的时间周期范围中存在节假日,则在节假日时间内自动跳过那个任务不执行。

四、执行函数

与事件类似,在任务中也需要对具体执行动作进行实现,也就是执行函数的构建。

在这里我们可以选择两种,一种为全局函数,选择任意一个服务函数,另一种是直接在内部函数中直接实现调用。至于内部函数编辑也是通过函数设计模块实现,参见 函数设计模块。

需要说明的是,在任务中,不会有默认入参。

五、代码实现

在代码编辑器模式下,可以看到每个任务分为两个文件,tasks.json、inner.py。

这两个文件分别对任务本身进行属性记录和对任务的执行函数实现。

下面是tasks.json原文,定义或记录了相关参数,如任务类型、任命名称、周期设置等。

{
    "funcType": "Inner",
    "title": "每天提醒客户跟进",
    "timerCfg": {
        "startTime": "2024-08-20 09:00:00",
        "repeat": {
            "repeatType": "day",
            "period": 1
        },
        "skipHoliday": 1
    },
    "enable": 1
}

对于inner.py,则主要体现了执行函数本身。

六、使用场景示例

考勤打卡提醒

在工作日周一到周五每天提前10分钟提醒公司员工打卡,这种情况就可以应用定时任务来实现。

也就是新建一个定时任务后,选择一个开始执行的时间,时分秒为8点50分(9点前10分钟),然后在重复周期中设定每周一、周二、周三、周四、周五,并且跳过节假日即可。

七、注意事项

定时任务触发的开始时间一定要在当前系统时间之后,历史时间并不会触发任务。

进一步了解极态云,体验产品? 请访问  极态云官网


极态云官方账号
1 声望0 粉丝

JIT 技术,为专业开发全面提速!极态云(jit)是一个基于全新软件开发理论(面向元素开发方法)、全新编程框架、全新开发工具、全新部署运行平台的企业级软件系统开发与运行平台,极大简化了应用系统的开发、部署...