Как вызвать конкретный метод перед уничтожением топологии шторма

Как вызвать конкретный метод перед уничтожением топологии шторма.

Я создал топологию во время шторма, я хотел вызвать определенный метод непосредственно перед тем, как топология будет убита.

есть ли какой-либо предопределенный переопределенный или какой-либо метод, доступный для этого в рамках шторма.

Заранее спасибо:)


person Kalpesh    schedule 20.08.2015    source источник


Ответы (1)


Нет такого...

В качестве обходного пути вы можете deactivate топологию перед ее уничтожением. Это гарантирует, что Spout.deactivate() вызывается.

Если вам нужно вызвать метод у болтов, используйте Spout.deactivate(), чтобы отправить «кортеж уведомления» (который не содержит данных для обработки) по всей топологии. И в каждом болте вызывайте свой специальный метод, если получен «кортеж уведомления».

Более того, этот «кортеж уведомлений» должен быть переслан Bolt всем своим предшественникам. Вам необходимо убедиться, что «кортежи уведомлений» отправляются всем параллельным исполнителям каждого болта. Для этого используйте выделенный «поток уведомлений» и подпишите каждый болт через allGrouping() на этот поток (в дополнение к обычным потокам ввода). Внутри каждого болта вам нужно проверить, является ли кортеж кортежем уведомлений или нет (например, через Tuple.getSourceStreamId())

После того, как очистка завершена, вы можете окончательно убить топологию.

person Matthias J. Sax    schedule 20.08.2015
comment
Большое спасибо, Матиас. - person Kalpesh; 21.08.2015