2015-08-20 3 views
4

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

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

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

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

ответ

4

Там нет такой вещи ...

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

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

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

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

+0

Большое спасибо Маттиасу. – Kalpesh

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

  • Нет связанных вопросов^_^