Run a list of tasks repeatedly until the expected condition is met.
Use this task if your workflow requires blocking calls polling for a job to finish or for some external API to return a specific HTTP response.
You can access the outputs of the nested tasks in the condition
property. The condition
is evaluated after all nested task runs finish.
type: "io.kestra.plugin.core.flow.LoopUntil"
Run a task until it returns a specific value. Note how you don't need to take care of incrementing the iteration count. The task will loop and keep track of the iteration outputs behind the scenes — you only need to specify the exit condition for the loop.
id: loop_until
namespace: company.team
tasks:
- id: loop
type: io.kestra.plugin.core.flow.LoopUntil
condition: "{{ outputs.return.value == '4' }}"
tasks:
- id: return
type: io.kestra.plugin.core.debug.Return
format: "{{ outputs.loop.iterationCount }}"
The condition expression that should evaluate to true
or false
.
Boolean coercion allows 0, -0, null and '' to evaluate to false; all other values will evaluate to true.
Check the frequency configuration.
If set to true
, the task run will end in a failed state once the maxIterations
or maxDuration
are reached.
Interval between each iteration.
Maximum duration of the task.
Maximum count of iterations.