聚合器不会从redis消息存储库中释放消息

时间:2014-07-31 17:42:55

标签: spring-integration

他正在使用带有redis的聚合器,发现有些消息没有从redis中清除。我们使用SI类查询redis消息存储库,发现找不到消息,但我从命令行查询redis,但仍有消息。

这是我查询组大小为零的redis消息的简单测试:

  @Autowired
  private RedisMessageStore loyaltyAggregatorRedisMessageStore;

  @Test
  public void testMessageStoreGroups() {
    MessageGroup group = loyaltyAggregatorRedisMessageStore.getMessageGroup("MESSAGE_GROUP_true");
    System.out.println(group.size());
}

但是当我查询Redis时,我有这个输出:

1) "MESSAGE_8fdf96b5-ea0e-45a5-a8db-2b245fc909aa"
...
105) "MESSAGE_2772c17f-539c-c63e-1072-a5e46bb8f13d"
106) "MESSAGE_e42960e9-1801-5376-bbbc-897ad724e0ba"
107) "MESSAGE_a23c9e65-8b0e-4ee4-a3b3-4f90bcd88851"
108) "MESSAGE_1558ec12-a1dc-1afd-c8ea-d8f79ccdbb21"
109) "MESSAGE_GROUP_true"
110) "MESSAGE_a123b075-3f17-4140-d9c3-115295330b6a"
111) "MESSAGE_ba07d76f-641e-7d38-d942-cdccd4b6aa0e"
112) "MESSAGE_fe77a8aa-e273-d202-2c3f-6be7a7376153"
113) "MESSAGE_d89872b0-9b7f-5a94-24a4-62c577b04d37"
114) "MESSAGE_cf935ae2-5813-5636-79ef-4381e0da2982"
115) "MESSAGE_8435ce3f-8b89-6223-1713-72e221382cdd"
116) "MESSAGE_e27daf70-795b-b4db-a262-e94450b88d41"
117) "MESSAGE_a06ad5a9-fafb-b882-747a-31b62cd13425"
118) "MESSAGE_04fe2ae4-9bde-91e8-f136-39f7e8d225f7"
119) "MESSAGE_a13db3bb-246a-3f1a-ed08-1431be324766"
120) "MESSAGE_8423e0fd-0eda-5dcc-3fd9-7b428689c02e"

and more

任何可能导致此问题的想法?

提前谢谢 Guzman的

1 个答案:

答案 0 :(得分:1)

显示,请您如何直接查询Redis。

BTW RedisMessageStore是这样的:

AbstractKeyValueMessageStore

Object mgm = this.doRetrieve(MESSAGE_GROUP_KEY_PREFIX + groupId);

MESSAGE_GROUP_KEY_PREFIXMESSAGE_GROUP_的位置。 所以,看起来像你过度讨论它"MESSAGE_GROUP_true"

其他地方出了问题。

如果消息将保留在Redis中,我们的测试服务器很久以前就会崩溃......