如何创建协调员工作以运行最后一个月的工作一次,即基于日期?

时间:2016-10-24 23:56:22

标签: hadoop oozie cloudera-cdh oozie-coordinator

我想创建一个协调员工作,该工作应该每月运行一次但是每天运行。它应该在月末运行,同一天自己运行应该在一个月的所有日子。

例如:8月份。它应该在8月底(2016-08-31)结束,但是在同一天,它应该在一个月的所有日子运行,即2016-08-01,2016-08-02 ... 2016-08-同一天31(即2016-08-31自己全部31天)。

我需要为我的动作节点动态获取日期值...在协调员工作的帮助下,我应该能够获得日期值。

请帮我解决这个问题。提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以运行该月的开头并在上个月的所有日期运行。在您的示例中,您的WF将在1/9

上的2016-08-*处运行

如果您想使用done-flag,则需要使用EL Function daysInMonth,以便您的input-events类似:

<input-events>
        <data-in name="input" dataset="mydataset">
          <start-instance>${coord:current( -(coord:daysInMonth(0) - 1) )}</start-instance>
          <end-instance>${coord:current(0)}</end-instance>
        </data-in>
      </input-events>