0

我有 3 个脚本要在一项 Oozie 作业中处理。说工作 a、b 和 c。b 和 c 已经运行了几天,比如从 11-1 开始。我也想包括一个,这样它们中的三个将来会并行运行。对于工作 a,我希望它能赶上 b 和 c 已经做到的过去。我也将开始时间设为 11-1,因此 a 将从 11-1 开始运行。这里我给出决策动作:

<switch>
    <case to="eadp-hive-bf4-old">
        ${TIMESTAMPnow} gt ${TIMESTAMP}
    </case>
    <default to="eadp-hive-bf4-events"/>
</switch>

我想要它做的是,当当前时间大于标称时间时,只运行一个;当当前时间是当前时间和默认的标称时间时,运行所有 3 个作业。

gt 比较(大于)不能正常工作,也不能正常&gt;工作。

有一个 isDir EL 我可以用来检查我的旧作业的 b 和 c 的确切目录,但由于我使用 datetime 作为分区,路径的 datetime 部分不是一个好的模式,除了没有适当的字符串函数来子字符串.

有没有办法比较工作流操作中的当前日期时间和名义日期时间,以便做出正确的决定?

谢谢。

4

1 回答 1

1

您应该将表达式放在 ${ ... } 中,并且您的时间戳应该是可比较的(长字符串或 ISO 字符串)。例子:

${TIMESTAMPnow gt TIMESTAMP}
于 2013-11-13T15:43:58.400 回答