I'm trying to use the Oozie coordinator to trigger an Oozie workflow every
night at midnight ET. The catch is that I need to also pass that time to
my application. I've reworked my tools to take W3C time strings as
property values, but now they're getting times in UTC, not local time.
Here's my coordinator XML file:
<coordinator-app name="my-coord" frequency="${coord:days(1)}"
start="2011-08-30T04:00Z" end="2012-09-01T04:00Z"
timezone="America/New_York"
xmlns="uri:oozie:coordinator:0.1">
<action>
<workflow>
<app-path>${workflowPath}</app-path>
<configuration>
<property>
<name>processingTimeRangeStart</name>
<value>${coord:dateOffset(coord:nominalTime(), -1,
'DAY')}</value>
</property>
<property>
<name>processingTimeRangeEnd</name>
<value>${coord:nominalTime()}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>
This does launch the proper workflow at midnight ET, but tonight it will
specify a processing range from 2011-08-30T04:00Z to 2011-08-31T04:00Z.
Instead, I want it to use one from 2011-08-30T00:00 to 2011-08-31T00:00.
Subtracting four hours by hand will work for now, but at the end of
Daylight Saving Time it will become wrong. Any ideas?