Delay pattern is used as a single option to set a range pattern for delays. If used then the following options do not apply: (delay, backOffMultiplier, useExponentialBackOff, useCollisionAvoidance, maximumRedeliveryDelay).
The idea is to set groups of ranges using the following syntax:
2:delay 2;limit 3:delay 3;...;limit N:delay N
Each group has two values separated with colon
limit = upper limit
delay = delay in milliseconds
And the groups is again separated with semi colon.
The rule of thumb is that the next groups should have a higher limit than the previous group.
Let's clarify this with an example:
That gives us 3 groups:
Resulting in these delays for redelivery attempt:
Redelivery attempt number 1..4 = 0 ms (as the first group start with 5)
Redelivery attempt number 5..9 = 1000 ms (the first group)
Redelivery attempt number 10..19 = 5000 ms (the second group)
Redelivery attempt number 20.. = 20000 ms (the last group)
Note: The first redelivery attempt is 1, so the first group should start with 1 or higher.
You can start a group with limit 1 to eg have a starting delay:
Redelivery attempt number 1..4 = 1000 ms (the first group)
Redelivery attempt number 5.. = 5000 ms (the last group)
There is no requirement that the next delay should be higher than the previous. You can
use any delay value you like. For example with
start with 5 sec delay and then later reduce that to 1 second.