春天集成事件的春天集成顺序

问题描述 投票:0回答:1

我正在处理Spring集成事件,需要确保事件调用的正确顺序。我有两个监听器。一个叫TerminalErrorListener,用来捕获TcpConnectionExceptionEvent和TcpDeserializationExceptionEvent。第二个叫TerminalDisconnectEventListener,捕捉TcpConnectionCloseEvent,我使用NIO和TcpDeserializationExceptionEvent。

在我的例子中,我使用了NIO,并且手动扩展了我的类TcpNioConnection,它包含一个额外的字段。这个字段被称为Originator,包含了关于什么原因导致TcpConnectionCloseEvent的信息,我的问题来了。

我在TerminalErrorListener里面定义了originator,并且需要确保TerminalDisconnectEventListener在TerminalErrorListener之后被调用。

一般情况下,我如何保证(可能我可以保证关闭事件在错误之后被调用)会发生这种情况?有没有什么优先级模式或默认的流程模式,可以在某种图中看到?我的意思是什么时候调用特定的事件,所有事件的一般顺序是什么。

谢谢你的回答。

events tcp spring-integration
1个回答
0
投票

使用NIO,不能保证在连接关闭事件之前得到反序列化失败事件。

© www.soinside.com 2019 - 2024. All rights reserved.