schedule
简介
计划任务,定时/循环触发某个任务
提示
- 热更新期间,任务列表保留,协程启动后遍历检查,从而天然支持热更新
- 算法“exec_time = exec_time + interval”保证了time.shift的支持
组件接口
schedule.gs
类
ScheduleTask
计划任务基础类
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|---|---|---|---|
| name | string | nil | 可选 | 任务名称 |
| func | function | nil | 可选 | 任务执行函数 |
| period_time | SchedulePeriodTime | nil | 可选 | 任务周期 |
成员方法
| 函数原型 | 函数作用 |
|---|---|
| void exec() | 执行任务 |
ScheduleTaskList
计划任务列表
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|---|---|---|---|
| list | array | nil | 可选 | |
| semarphore | sync_object | nil | 可选 |
成员方法
SchedulePeriodTime
周期时间
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|---|---|---|---|
| now | int | -1 | 可选 | 本周期时间 |
成员方法
| 函数原型 | 函数作用 |
|---|---|
| string desc() | 获取描述 |
| bool update() | 更新周期时间 |
| int time() | 获取周期时间 |
| int diff(int t) | 计算时间差 |
| bool is_early_than(int t) | 判断是否早于指定时间 |
| bool is_late_than(int t) | 判断是否晚于指定时间 |
| int calc_next_period_time() | 计算下一周期时间 |
YearSchedulePeriodTime
继承自 SchedulePeriodTime
间隔时长为1年的计划周期