#java #spring #apache-camel
#java #весна #apache-camel
Вопрос:
У меня есть приложение Camel / Spring с несколькими контекстами (скажем, 3 — A, B amp; C). Контексты предназначены для запуска / остановки в определенном порядке. Запуск: C, B, затем A. Завершение работы A, B, затем C. Существует много документации об указании порядка завершения работы в одном контексте верблюда, но я ничего не нахожу об этом, если маршруты находятся в нескольких контекстах. DefaultShutdownStrategy
Кажется, что поддерживается только один контекст.
Ответ №1:
Несколько подходов для изучения:
-
Используйте уровни выполнения пакета в контейнере на основе Karaf, чтобы гарантировать, что завершение работы является обратным запуску
-
Разработайте соглашение, в котором вы можете использовать шину управления Camel и иметь один «главный» маршрут, отвечающий за запуск и завершение работы. Настройте все маршруты так, чтобы они не запускались автоматически, за исключением одного «основного» маршрута. Затем этот маршрут запускает и останавливает маршруты в любом необходимом порядке.
-
Вы упомянули Spring.. Я удивлен, что он не выполняет порядок запуска в обратном порядке при завершении работы. Как правило, Blueprint хорошо справляется с изменением порядка запуска.