-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
It will be a very useful feature to have dependencies between schedules such that they can be triggered based on the events, like- success or failure of other schedules in addition to the IS8601 time format. I like the way Jenkins works if there is a dependent project specified as upstream/downstream. It triggers accordingly based on whether the build failed or succeeded.
Scenario
Lets say schedule B has to be triggered after schedule A is done and both have their schedule trigger defined by ISO-8601 time format as well. In this case these scenarios may happen-
- If schedule 'A' gets triggered based on its ISO-8601 time, it will continue as it does not depend on any other schedule. Once it is done, it will read its field that defines the schedule IDs of dependent jobs and trigger them, like- in this case schedule 'B'
- While schedule 'A' was running, schedule 'B' gets triggered based on its ISO-8601 time. In this case, it will check the dependent jobs and their last successful completion time. If it is later than the last completion time of itself, it executes, else it cancels the execution and waits for the next trigger.
- If schedule 'A' was scheduled once, it is done and removed from schedule store and now schedule 'B' gets triggered. In that case, schedule 'B' does not find the schedule 'A' ID in schedule store, so it removes schedule 'A' from its dependencies and breaks free from next schedule onwards
I think easiest solution will be to always let the schedule validate its execution when it is triggered based on the completion time of dependent schedules.
Metadata
Metadata
Assignees
Labels
No labels