易语言Crontab定时任务执行模块v1.2可做计时器等

易语言 2020-08-01 14:55:34

易语言Crontab定时任务执行模块v1.2可做计时器等

vS_Crontab_SaveTask (“* * * * * *”, “我是任务名称”, 取子程序地址 (&子程序_test2), )

参数名 类型 参考 可空 数组 备注
crontab 文本型 Crontab 格式 1\-3,6\-8 \* \* \* \* \* \[我是任务名称\] 支持此方式 注:第一个增加了Crontab没有的秒单位\]
taskName 文本型 ✔ 任务唯一标记 如我是任务名称
callback 整数型 子程序指针
maxCallCount 整数型 ✔ 最大执行次数

' 判断是否在运行途中新增的
_canCreate = _runType = 1 且 m_run_config.取整数 (_taskName + “.status”) = #CRONTAB_STATUS_WAIT
_canCreate2 = _runType = 0 且 m_run_config.取整数 (_taskName + “.status”) ≠ #CRONTAB_STATUS_RUN
_canCreate = _canCreate 或 _canCreate2
.如果真 (_canCreate = 真)
' 初始化
m_run_config.置整数 (_taskName + “.status”, #CRONTAB_STATUS_RUN) ' 设置状态为已开启
_addr = 取变量数据地址 (_taskName)
_hThread = _CreateThread (0, 0, &vS_Crontab_monitor, _addr, 0, 0)
m_run_config.置整数 (_taskName + “.handle”, _hThread) ' 设置线程句柄
m_run_config.置文本 (_taskName + “.start_time”, 到文本 (取现行时间 ())) ' 设置开始时间
高精度等待_改良版 (100)

' 开始延迟
高精度等待_改良版 (_时间差)
' 获取线程句柄
handle = m_run_config.取整数 (任务名称 + “.handle”)
' 调用任务
调用子程序 (m_run_config.取整数 (任务名称 + “.callback”), , , 任务名称, 时间_取现行时间戳 (), handle)
' 调用完成
' 设置已执行次数
m_run_config.置整数 (任务名称 + “.call_count”, m_run_config.取整数 (任务名称 + “.call_count”) + 1)
' 判断最大数量是否以满足
.如果真 (_maxCallCount ≠ 0 且 m_run_config.取整数 (任务名称 + “.call_count”) ≥ _maxCallCount)
' 设置定时任务已完成
m_run_config.置整数 (任务名称 + “.status”, #CRONTAB_STATUS_END)
返回 (真)