ecFlow学习笔记02.3.10 —— 时间依赖
该教程的最新版已发布在GitHub上,请访问ecflow-tutorial-cn
这是 ecFlow 教程的一部分,完整教程请参看《ecFlow学习笔记02 —— 教程》
- *有时希望在某个特定时间点运行某个任务,或者每三个小时运行,或者每月第一天,或者星期一。
ecFlow 支持 date 和 time 依赖。
依赖种类
时间
绝对时间:在确定时间点运行
相对时间: 相对于 suite 的启动时间
时间依赖可以按常规间隔重复。一旦所有时间点都运行结束,节点变为 complete 状态
最后一个示例中,如果任务运行超过5分钟,则会错过时间点。
日期(date or day)
日期依赖使用 {shell}date{/shell} 或 {shell}day{/shell} 指定。日期依赖都是绝对的,但可以使用通配符
cron
Cron 依赖使用 {shell}cron{/shell} 关键字。cron 与 time 不同,设置 cron 的节点运行完成后立刻再次排队。
cron 使用 real time clock 而不是 hybrid clock
依赖设置
每个任务可以有多个时间和日期依赖:
上面的任务将在周日和周三的上午1点、下午4点运行,并且当天是每月的1号或10号。
类似 trigger,date 和 time 依赖可以设置在 family 层。这种情况下,该 family 下的 task 将根据这些依赖关系运行。
注意:所有时间相关的依赖关系(例如 cron,time,today,date 和 day)都相对于 suite 的时钟(clock)。更多信息请查看《Dates and Clocks》。
文本方式
让我们修改 definition 文件,添加一个 family f2。为了简便,下面的代码中省略前面的 family f1。
Python方式
省略 family f1 部分代码。
生成的 def 文件
任务
- 修改 suite definition 文件
- 拷贝 /test/f1/t7 创建所有需要的 ecf script
- 加载并启动 suite
- ecflowview 有个独立的窗口解释为啥某个任务处于 queued 状态。选择一个 queued 任务,点击问号按钮。
词汇表
task
date
time
dependencies
day
cron
trigger
family
today
clock
suite
family
suite definition
ecf script
ecflowview
queued