Delayed Loop
Send the items of a list one after another with a pause between them, for example to stay under an API rate limit.
Introduction
By default the Each component sends all the items of a list at once. The steps in the loop body then call the target API for all the items at the same time, which can hit its rate limit.
Set Delay on Each to space the items out. Each then sends one item, waits the given number of milliseconds, sends the next one, and so on.

Settings
Delay: the pause between two items in milliseconds, from 0 to 60000 (one minute). 0 or empty means no delay.
For example, an API that allows 10 requests per second needs a delay of at least 100 ms.
How it works
Each sends the items in their list order, with the pause between them. The item messages look the same as in the default mode: Index, Value, Items Count and Correlation ID.
done is sent once the last item has been sent.
A long list is processed in batches of up to three minutes in the background, so a delayed loop can run for a long time without blocking the flow. If the engine delivers the input message again after an error, the loop continues from the last sent item instead of starting over.
Join Each works the same as in a parallel loop, see Parallel loop with Join Each.
A delay controls when an item is sent, not when it is finished. If one item takes longer in the loop body than the delay, the next item starts before the previous one is done, and the items can still finish out of order. When every item has to be finished before the next one starts, use a sequential loop.
Last updated
Was this helpful?
