Верблюд не завершает процесс Java со свойством макс. Секунд простоя (Spring-Boot) - PullRequest
0 голосов
/ 18 марта 2020

У меня есть загрузочное приложение Spring, которое использует Apache верблюд. Это отдельное приложение, которое опрашивает каталог с компонентом Camel File, обрабатывает содержимое и отправляет его Kafka с компонентом Camel Kafka. Я хотел бы, чтобы приложение было недолгим, поэтому я хочу, чтобы оно само завершалось после заданных секунд простоя. Я использую зависимость camel-spring-boot-starter, чтобы в настройках приложения я мог установить максимальные секунды простоя:

camel.springboot.duration-max-idle-seconds=20

Через 20 секунд я вижу, что контекст верблюда и мой веб-сервер ( используется как исполнительный механизм) корректно завершаются, но процесс java не возвращает код выхода 0. Процесс зависает как этот навсегда.

Используя аналогичное свойство, если на этот раз я установлю camel.springboot.duration-max-seconds=20, верблюд контекст и журналы выключения веб-сервера абсолютно одинаковы и корректно завершают работу, а процесс Java возвращает код завершения 0, который я ожидал.

Вы сталкивались с подобным поведением? Почему duration-max-idle-секунд делает постепенное отключение верблюда, но не завершает процесс Java?

...