Assuming you’re talking about Orquesta.
Quick Answers To Your Specific Questions
Does the position of the delay in a specific action matter?
No, the ordering of the
task dictionary keys (which include
retry) do not matter.
or does it always process specific items in a specific order (like cmd always runs first, then delay, etc)
There are two ways to delay a task, and the answer to this question depends on the exact type of delay you are talking about (see below).
Specifying a delay on a task will prevent a task from executing for a specified time. The delay is applied before the task is executed, and is only applied once.
delay: 10 # seconds
Task retry delay specifies the amount of delay between retry executions of a task. This is only applied when the task is retried, so if the task is successful the first time it is tried, this setting will have no effect.
delay: 5 # seconds
I believe that the task delay is only applied once, even if the task is retried.
The task retry delay is applied every time the task is retried, but is not applied before the initial execution attempt.
Skeleton Workflow For You
- acceptable_amount_of_time: ...
# Retry up to three times (so four times total), delaying each non-first attempt by 30 seconds
delay: 30 # seconds
- when: <% success() %>
- when: <% failed() %>
delay: 60 # seconds
- when: <% result().something < acceptable_amount_of_time %> # <-- modify this
- when: <% result().something >= acceptable_amount_of_time %> # <-- modify this