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 文件

任务

  1. 修改 suite definition 文件
  2. 拷贝 /test/f1/t7 创建所有需要的 ecf script
  3. 加载并启动 suite
  4. ecflowview 有个独立的窗口解释为啥某个任务处于 queued 状态。选择一个 queued 任务,点击问号按钮。

词汇表

task
date
time
dependencies
day
cron
trigger
family
today
clock
suite
family
suite definition
ecf script
ecflowview
queued