Теперь я почти уверен, что правильный способ запустить Tailer
в приложении Spring Boot - это изменить основной класс для реализации CommandLineRunner
(как описано в этой милой маленькой статье Mkyong ) и запустите оттуда Tailer
. Я считаю, что это связано с тем, что загрузка Spring предполагает, что вы пишете веб-приложение, в котором точка входа - это входящий запрос, который должен обрабатываться Tomcat или чем-то еще. Если вы хотите изменить точку входа (например, это не веб-приложение), сделайте то же самое и существенно переопределите поведение по умолчанию.
Я до сих пор не совсем понимаю странное поведение, когда в первый раз, когда я пишу сообщение в журнале, приложение должно реагировать (а не просто игнорировать) Tailer, и приложение, казалось, изящно останавливается. Тем не менее, я считаю, что исправил это, поэтому я поделюсь.
В этом приложении поведение для «реакции» на конкретное c сообщение журнала, на которое я все время ссылаюсь, выглядит следующим образом: *
Анализ сообщения журнала Создание HTTP-запроса Использование клиента Feign для отправки его в REST API
Раньше я игнорировал ответ от клиента Feign - даже не назначая его объекту Response
. Когда я решил попробовать это, чтобы увидеть, что на самом деле возвращается из API, поведение приложения изменилось, так что оно больше не выходило само по себе после первого вызова. Я мог бы продолжать писать сообщения, и он продолжал бы попадать в API.
Вот ссылка на PR с изменением, которое, я уверен, исправлено.
Надеюсь, это поможет кому-нибудь другому!