根据expire-groups-on-timeout的文档: "当一个组由于超时(或MessageGroupStoreReaper)而完成时,默认情况下该组已过期(完全删除)。迟到的消息将启动一个新组。将此值设置为false以完成组但保留其元数据,以便丢弃迟到的消息。稍后可以使用MessageGroupStoreReaper和empty-group-min-timeout属性将空组过期。默认值:' true'。"
如何使用Java Config实现这一目标?基本上在一个组超时之后,我希望丢弃迟到的消息,并且一旦所有消息到达就使该组到期,这样它就不会产生内存泄漏。对于后面的部分,我想让MessageGroupStoreReaper可以工作。
答案 0 :(得分:0)
通常,带连字符的属性会转换为camelCase,所以
ab-cd-ef
通常是属性
abCdEf
但是,参考手册中有一个拼写错误,它expire-groups-upon-timeout
而不是expire-groups-on-timeout
。
所以,你需要setExpireGroupsUponTimeout()
。
我希望丢弃迟到的消息,并且一旦所有消息都到达,该组将过期,这样就不会产生内存泄漏。
expireGroupsUponCompletion
将删除整个组的元数据。要在超时后丢弃延迟消息,但在以后的某个时间清理,您需要在setMinimumTimeoutForEmptyGroups()
中设置收割机和适当的设置。