我使用消息存储库备份的队列通道,发现时间戳标头与原始值不一致,有没有办法保留它?
这是我的配置
<int:channel id="myChannel">
<int:queue message-store="myStore"/>
</int:channel>
提前感谢!
您正在寻找的内容已在版本5.0
:https://github.com/spring-projects/spring-integration/pull/1916 中修复。
请注意我在 PR dfescription 末尾的短语:
通过此修复,我们在执行标准序列化过程时将消息按原样保留在存储中,而无需进行任何修改。
任何自定义序列化程序都应考虑使用 MutableMessageBuilder 如果需要保留 ID 和时间戳
默认的如下所示:
public Message<?> mapRow(ResultSet rs, int rowNum) throws SQLException {
return (Message<?>) this.deserializer.convert(this.lobHandler.getBlobAsBytes(rs, "MESSAGE_BYTES"));
}
因此,我们肯定会保留传入的ID
和TIMESTAMP
.