While
Last updated: 2 minutes read.
A processor that checks a Bloblang query against each batch of messages and executes child processors on them for as long as the query resolves to true.
Common
# Common config fields, showing default values
label: ""
while:
at_least_once: false
check: ""
processors: [] # No default (required)
Advanced
# All config fields, showing default values
label: ""
while:
at_least_once: false
max_loops: 0
check: ""
processors: [] # No default (required)
The field at_least_once, if true, ensures that the child processors are always executed at least one time (like a do .. while loop.)
The field max_loops, if greater than zero, caps the number of loops for a message batch to this value.
If following a loop execution the number of messages in a batch is reduced to zero the loop is exited regardless of the condition result. If following a loop execution there are more than 1 message batches the query is checked against the first batch only.
The conditions of this processor are applied across entire message batches using batching.
Fields
at_least_once
Whether to always run the child processors at least one time.
Type: bool
Default: false
max_loops
An optional maximum number of loops to execute. Helps protect against accidentally creating infinite loops.
Type: int
Default: 0
check
A Bloblang query that should return a boolean value indicating whether the while loop should execute again.
Type: string
Default: ""
# Examples
check: errored()
check: this.urls.unprocessed.length() > 0
processors
A list of child processors to execute on each loop.
Type: array