2013-12-19 1 views
2

Когда вы убиваете топологию, есть ли способ получить уведомление о том, что он фактически убит в java?Уведомление после убийства топологии в шторме в java

Для моего теста интеграции я запускаю локальный кластер с моей топологией в @Before, а затем я убиваю его в @After. Таким образом, моя топология никогда не будет «грязной» с другими тестами, запущенными на ней, даже если это может занять много времени, чтобы запустить все тесты.

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

Я уже сократил Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS до 0, чтобы заставить убивать рабочих как можно скорее, но я должен ждать какое-то произвольное время, чтобы убедиться, что топология убита, прежде чем отправлять новый «чистый» для следующего теста.

ответ

1

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

Если проблема связана с работниками, обращающимися к ресурсам за пределами кластера Storm, вам, вероятно, лучше попытаться изолировать эти ресурсы между тестами, чем обеспечить, чтобы все работники Storm умерли.

+0

Я попробую это, запустив мою топологию только один раз в наборе тестов, очищая внешние системы между каждым тестом. – zenbeni

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

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