【发布时间】:2016-01-13 21:12:31
【问题描述】:
我有以下使用 Redis 作为消息存储的配置。我没有这个模块的java代码,只有这个配置文件。该配置具有以下功能: 当该模块接收到来自输入通道的消息时,它将检查 Redis 存储,如果消息不存在(表达式将被评估为 TRUE),则消息将被发送到输出通道将被放入 Redis 中;如果消息已经存在(表达式被评估为 False),则消息将被丢弃。
假设这个模块叫做 RedisModule,所以我有一个流:
RedisMdule | log
问题是:当我向这个模块发送消息时,在日志文件中,它显示消息#2、#4、#6 等,第一条消息丢失了,奇数消息也丢失了。我在这个配置文件中有什么遗漏吗?非常感谢。
<int:channel id="input"/>
<int:channel id="output"/>
<int:filter input-channel="input"
output-channel="output"
discard-channel="nullChannel"
expression="@metadataStore.get(payload) == null"/>
<int:outbound-channel-adapter channel="output"
expression="@metadataStore.put(payload, '')"/>
【问题讨论】: