Порядок интеграции Spring Spring Integration Events - PullRequest
0 голосов
/ 04 мая 2020

Я имею дело с Spring Integration Events и мне нужно обеспечить правильный порядок вызовов событий. У меня есть два слушателя. Один из них называется TerminalErrorListener и перехватывает TcpConnectionExceptionEvent и TcpDeserializationExceptionEvent. Второй называется TerminalDisconnectEventListener и перехватывает TcpConnectionCloseEvent.

В моем случае я использую NIO и вручную расширяю TcpNioConnection с моим классом, который содержит одно дополнительное поле. Это поле называется Originator и содержит информацию о том, что вызвало TcpConnectionCloseEvent, и здесь возникает мой вопрос.

Я определяю источник в TerminalErrorListener и должен убедиться, что TerminalDisconnectEventListener вызывается после TerminalErrorListener.

Как можно Я вообще гарантирую (возможно, я могу гарантировать, что событие close вызывается после ошибки), что это произойдет? Есть ли какой-нибудь приоритетный режим или модель потока по умолчанию, которую можно увидеть на некоторой диаграмме? Я имею в виду, когда вызываются конкретные c события и какова общая последовательность всех событий.

Спасибо за ответ.

1 Ответ

0 голосов
/ 04 мая 2020

С NIO нет гарантии, что вы получите событие сбоя десериализации до события закрытия соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...