【JIT/ 极态云】技术文档 -- 定时任务
一、简介
定时任务是根据设定的一个指定时间及循环周期,每到一个时间周期,都会触发一次任务,可类比为一个闹钟。
二、交互流程
新建定时任务,配置任务的名称、存储路径、执行时间与循环周期。
可以在任务页面中构建相应的执行函数,即到达指定时间触发后做什么,并控制任务开启生效。
任务执行记录展示根据触发时间分类的“待执行”、“执行中”、“已执行”任务,包括执行时间、执行反馈等信息。
三、触发时机
定时任务区别于事件的指定动作触发,而是到达一个指定时间后触发。对于周期任务,则可以在触发时间的基础上,增加重复周期和结束时间的设定。
一、开始时间
在单次定时任务中,【开始时间】就是指定的任务触发时间;
在周期定时任务中,【开始时间】既是任务第一次开始执行的时间,也会作为时间周期范围的起始位置;
二、重复周期
即循环的周期类型,可以是不重复、每小时、每天、每周、每月、每年、自定义。
假设开始时间选定的是 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 原文,定义或记录了相关参数,如任务类型、任命名称、周期设置等。
对于 inner.py,则主要体现了执行函数本身。
六、使用场景示例
考勤打卡提醒
在工作日周一到周五每天提前 10 分钟提醒公司员工打卡,这种情况就可以应用定时任务来实现。
也就是新建一个定时任务后,选择一个开始执行的时间,时分秒为 8 点 50 分(9 点前 10 分钟),然后在重复周期中设定每周一、周二、周三、周四、周五,并且跳过节假日即可。
七、注意事项
定时任务触发的开始时间一定要在当前系统时间之后,历史时间并不会触发任务。
进一步了解极态云,体验产品? 请访问 极态云官网 https://jit.pro/?utm_source=info&utm_campaign=kai_fa_zhi_nan&utm_medium=article&utm_content=241151
评论