У меня есть координатор Oozie, который при запуске устанавливает свое время начала до 365 дней назад, а затем запускает рабочий процесс с частотой ежедневно, пока не достигнет последней даты с входными данными. Так coordinator.xml выглядит примерно так:Rerun oozie workflows каждый день
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<coordinator-app name="${jobName}" frequency="${coord:days(1)}" start="${startTime}" end="${endTime}" timezone="${timezone}" xmlns="uri:oozie:coordinator:0.2">
<controls>
<timeout>-1</timeout>
<concurrency>30</concurrency>
<execution>FIFO</execution>
</controls>
<datasets>
<dataset name="myData" frequency="${coord:days(1)}" initial-instance="${initialTime}" timezone="${timezone}">
<uri-template>${outputPath}/${YEAR}${MONTH}${DAY}</uri-template>
</dataset>
</datasets>
<input-events>
<data-in name="myInput" dataset="myData">
<instance>${coord:current(-1)}</instance>
</data-in>
</input-events>
<action>
<workflow>
<app-path>${appPath}</app-path>
<configuration>
<property>
<name>myInput</name>
<value>${coord:dataIn('myInput')}</value>
</property>
<property>
<name>date</name>
<value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, 'DAY'), 'yyyyMMdd')}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>
При запуске этот координатор запускает 365 рабочих процессов. Затем на следующий день он просто запускает один рабочий процесс для входных данных этого дня. И так далее на следующий день.
Теперь требования были изменены, и мне нужно запустить 365 рабочих процессов каждый день, а не только в первый раз! Поэтому при запуске я хочу, чтобы он работал, как сейчас. Но на следующий день, когда входные данные станут доступными, мне нужно вернуться и запустить ежедневные рабочие процессы за последние 365 дней. И так далее для каждого последующего дня, как только будут обнаружены новые входные данные.
Как я могу это достичь? Спасибо,
Альваро