Redeliver Delay Pattern - 6.3

Talend ESB Mediation Developer Guide

Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Design and Development
Talend ESB

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: limit:delay;limit 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: delayPattern=5:1000;10:5000;20:20000

That gives us 3 groups:

  • 5:1000

  • 10:5000

  • 20:20000

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: delayPattern=1:1000;5:5000

  • 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 delayPattern=1:5000;3:1000 we start with 5 sec delay and then later reduce that to 1 second.