2014-12-02 2 views
0

Когда я создаю поток, состоящий из нескольких модулей, существуют ли какие-либо гарантии, предоставляемые при доставке события каждому модулю. Есть ли возможность повторного воспроизведения событий?Spring XD - гарантии доставки событий

Что делать, если процессорный модуль занимает много времени, чтобы обработать одно событие, но падает в середине обработки. Что происходит с этим событием, когда модуль перезапускается в контейнере?

ответ

0

См. the documentation re: Message Bus Configuration и, в частности, Error Handling (Message Delivery Failures).

Конфигурация повтора может быть изменена на шине или отдельном модуле/уровне потока.

+0

Спасибо, Гэри. Я действительно ссылался на этот документ. Но я не был уверен, что произойдет в следующих двух сценариях. i. Нет. Случай с ошибкой: всегда ли события передаются только один раз или есть возможность его доставки более одного раза? ii. Сбой модуля: когда событие удаляется из шины сообщений, но процесс выходит из строя после удаления и обработки. В этом случае происходит ли событие? – user3847658

+0

Предполагая, что транспорт кролика; я. Есть небольшая (но ненулевая) возможность перепродажи - если сеть опускается после доставки, но до того, как ack отправляется брокеру. Сообщение будет запрошено и будет повторно отправлено; вы можете обнаруживать переадресации с использованием заголовков сообщений, но вам нужна логика, чтобы определить, была ли предыдущая поставка успешно обработана ранее. При использовании прямого связывания поведение отличается тем, что исключение будет передано предыдущему модулю. II. Нет, снова полагаясь на кролика, сообщение будет отправлено, потому что оно не было подтверждено. –

+0

Спасибо, Гэри! – user3847658

Смежные вопросы