2015-05-06 75 views
1

按照expire-groups-on-timeout的文檔: 「當由於超時(或由MessageGroupStoreReaper)完成組時,默認情況下該組已過期(完全刪除)。延遲到達的消息將啓動一個新組,但將它設置爲false,以便延遲到達的消息將被丟棄,以後可以使用MessageGroupStoreReaper和empty-group-min-timeout屬性將空組過期。默認值:'true 」「。什麼是Java Config中的超時組超時等效項?

如何在Java Config中實現這一目標?基本上在組超時之後,我希望丟棄遲到的消息,並且一旦所有消息到達,組都會過期,從而不會產生內存泄漏。對於後面的部分,我想讓MessageGroupStoreReaper可以工作。

回答

0

通常,連字符的屬性被轉換爲駝峯,所以

ab-cd-ef 

通常是一個屬性

abCdEf 

然而,有在參考手冊中一個錯字,它expire-groups-upon-timeoutexpire-groups-on-timeout。所以,你需要setExpireGroupsUponTimeout()

我希望延遲到達的消息被丟棄,並且一旦所有消息都到達,組就會過期,從而不會產生內存泄漏。

expireGroupsUponCompletion將刪除完整組的元數據。要在超時後丟棄延遲的消息,並在稍後的某個時間清理,則需要使用收割機和setMinimumTimeoutForEmptyGroups()中的適當設置。

+0

感謝您的迴應加里。因此,如果我理解正確,我應該設置setExpireGroupsUponTimeout(false),以便該組完成但不會過期,因此元數據仍然存在,並且遲到的消息不會啓動新組並且將被丟棄。並且需要添加收割者以使用minTimeoutForEmptyGroups()設置刪除這些組。這是正確的理解嗎? –

+0

是的,這是正確的。 –

+0

如果我將expireGroupsUponTimeout設置爲true,則遲到的消息將啓動一個新組,但該組也會在組超時值後超時,並且它將過期,對嗎?那時,這些消息將被丟棄。因此,看起來好像我的聚合邏輯只在所有消息到達時纔會執行某些操作,否則在超時時出錯,然後我不需要擔心遲到的消息,也不需要擁有收割者,因爲他們啓動的新組將會過期在下一次超時。我的理解是否正確?或者我需要擔心遲到的信息? –