Как избежать отключения Springboot Camel Route каждый день для сигнала отбоя в определенное время

У меня есть автономное приложение springboot с настройкой Apache Camel 2.24 camelroutes. Ожидается, что приложение будет работать круглосуточно и без выходных. Сервисы, представленные как REST API через camel REST DSL.

**

Пожалуйста, помогите, как избежать завершения работы приложения camel springboot и не отключать процесс Java автоматически каждый день.

**

Я выполнил jar-файл springboot из Udeploy с помощью команды nohup java -jar для развертывания, чтобы избежать прерывания зависания.

Каждый день в определенное время дня приложение получает сообщение HangupInterceptor для завершения вызова и остановки основного экземпляра. Это изящно завершает мои маршруты Camel, закрывает контекст spring camel и, наконец, уничтожает сервлет camelhttptransport.

В конце концов, процесс jvm приложения springboot jvm также принудительно завершается / завершается контекстом Camel и больше не выполняется, когда я проверяю с помощью ps -ef | grep java

Журналы:

[ngupInterceptor] o.a.c.m.MainSupport$HangupInterceptor : Received hang up - stopping the main instance.
[ngupInterceptor] o.a.camel.spring.SpringCamelContext : Apache Camel 2.24.0 (CamelContext: Camel1) is shutting down
[ngupInterceptor] o.a.camel.impl.DefaultShutdownStrategy : Starting to graceful shutdown 2 routes(timeout 300 seconds)
[ - ShutdownTask] o.a.camel.impl.DefaultShutdownStrategy : Route: routename1 shutdown complete, was consuming from: direct://r1
[ - ShutdownTask] o.a.camel.impl.DefaultShutdownStrategy : Route: routename2 shutdown complete, was consuming from: direct://r2
[ngupInterceptor] o.a.camel.impl.DefaultShutdownStrategy : Graceful shutdown of 2 routes completed in 0 seconds
[ Thread-7] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService ’applicationTaskExecutor’
[ngupInterceptor] o.a.camel.main.MainLifecycleStrategy : CamelContext: Camel1 has been shutdown, triggering shutdown of the JVM
[ngupInterceptor] o.a.camel.spring.SpringCamelContext : Apache Camel 2.24.0 (CamelContext: Camel1) uptime 6 hours 10 minutes
[ngupInterceptor] o.a.camel.spring.SpringCamelContext : Apache Camel 2.24.0 (CamelContext: Camel1) is shutdown in 0.052 seconds
[ Thread-7] o.a.c.c.s.CamelHttpTransportServlet : Destroyed CamelHttpTransportServlet[Servlet]

Файл application.properties включен

camel.springboot.main-run-controller=true

Файл pom.xml включен

<dependency>   
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-started-web</artifactId>
</dependency>

person Sunil_RedDevil    schedule 24.01.2020    source источник
comment
кто отправляет зависание? и разместите свой код, а не его фрагмент   -  person Toerktumlare    schedule 25.01.2020
comment
Я не могу его отследить, так как в журналах это не отображается. Я предполагаю, что это могло быть с сервера Udeploy, который выполнил команду java -jar, или с сервера jvm Unix, который инициировал SIGHUP.   -  person Sunil_RedDevil    schedule 25.01.2020
comment
никогда не слышал о uDeploy, так что удачи   -  person Toerktumlare    schedule 25.01.2020
comment
У меня есть обычный основной класс springbootApplicatio, в котором ничего особенного в scanBasePackages нет. Я использую зависимость Apache Camel ‹artifactId› camel-spring-boot-starter ‹/artifactId›. Он автоматически определяет маршруты. Маршруты определены в классе, который расширяет построитель маршрутов с помощью @Component. Не могли бы вы сообщить мне, какой фрагмент кода вам был бы интересен? Как определяются маршруты?   -  person Sunil_RedDevil    schedule 25.01.2020
comment
UDeploy - это развертывание UrbanCode   -  person Sunil_RedDevil    schedule 25.01.2020


Ответы (2)


HangupInterceptor можно отключить с помощью параметра camel.main.hangup-interceptor-enabled=false в вашем application.properties.

person Bedla    schedule 26.01.2020
comment
Это часть camel 3.0.x? - person Sunil_RedDevil; 27.01.2020
comment
Я сейчас на 2.24. Я еще не перешел. - person Sunil_RedDevil; 27.01.2020
comment
Вы правы, это было введено в 3.0.0 (извините, я смотрел основную ветку). В настоящее время я не вижу простого способа установить это в 2.24. Рекомендуется перейти на 3.x, так как 2.24.x больше не будет обновляться (2.24.3 был последним запланированным патчем), а поддержка 2.25.x планируется только до конца этого года. - person Bedla; 28.01.2020

Было обнаружено, что некоторые другие приложения sh script запускали команду kill -9 на всех java pid, чтобы остановить приложение. Нашел и исправил скрипт, чтобы не убивать приложение springboot.

person Sunil_RedDevil    schedule 16.09.2020