diff --git a/docs/src/reference/docbook/aggregator.xml b/docs/src/reference/docbook/aggregator.xml index b03ea9fd19..63653368d8 100644 --- a/docs/src/reference/docbook/aggregator.xml +++ b/docs/src/reference/docbook/aggregator.xml @@ -744,6 +744,15 @@ then you should simply provide an implementation of the ReleaseStrate The reaper is a Runnable, and all that is happening in the example above is that the message group store's expire method is being called once every 10 seconds. The timeout itself is 30 seconds. + + + It is important to understand that the 'timeout' property of the MessageGroupStoreReaper is an + approximate value and is impacted by the the rate of the task scheduler since this property will + only be checked on the next scheduled execution of the MessageGroupStoreReaper task. For example if + the timeout is set for 10 min, but the MessageGroupStoreReaper task is scheduled to run every 60 min + and the last execution of the MessageGroupStoreReaper task happened 1 min before the timeout, the + MessageGroup will not expire for the next 59 min. So it is recommended to set the rate at least equal to the value of the timeout or shorter. + In addition to the reaper, the expiry callbacks are invoked when the application shuts down via a lifecycle callback in the CorrelatingMessageHandler.