events - Spring集成事件的Spring集成顺序
问题描述
我正在处理 Spring Integration Events,需要确保事件调用的正确顺序。我有两个听众。一种称为 TerminalErrorListener 并捕获 TcpConnectionExceptionEvent 和 TcpDeserializationExceptionEvent。第二个称为 TerminalDisconnectEventListener 并捕获 TcpConnectionCloseEvent。
在我的例子中,我使用 NIO 并在我的类中手动扩展 TcpNioConnection,其中包含一个额外的字段。该字段称为 Originator 并包含有关导致 TcpConnectionCloseEvent 的原因的信息,这是我的问题。
我在 TerminalErrorListener 中定义了发起者,并且需要确保在 TerminalErrorListener 之后调用 TerminalDisconnectEventListener。
我通常如何确保(可能我可以保证在错误之后调用关闭事件)这会发生?是否有可以在某种图表中看到的优先模式或默认流模型?我的意思是何时调用特定事件以及所有事件的一般顺序是什么。
感谢您的回答。
解决方案
使用 NIO,无法保证您会在连接关闭事件之前获得反序列化失败事件。
推荐阅读
- jquery - jQuery 不能在带有 Webpacker 的 Rails 6 中工作
- kubernetes - 无法掌舵安装rabbitmq服务器(掌舵2.16.9):命名空间“兔子”被禁止
- python - 在 Anaconda Spyder 环境中运行时没有名为 coremltools 的模块
- angular - 如何清除primeng中的吐司消息?
- apache-kafka - GCP Dataflow 在 python 中是否支持 kafka IO?
- flask - 由于条件,Flash 消息未显示
- javascript - 在 ASP.NET CORE MVC 中使用带有传单地图的 SQL 数据库中的纬度和经度显示标记
- git - Mac ZSH shell “忘记” ssh 密钥
- c# - 如何在 sharpsvn.merge() 中发生冲突
- python-3.x - 使用 cv2.imshow 时获取此黑色窗口而不是图片