mitaichik
@mitaichik

Как посылать запущенному приложению комманды?

Всем привет! В java новчек.

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

Всякие премудрости мне не нужны, тупо отправить ему несколько команд из консоли, ну и смотреть ответ, что оно выведет.

Пока что мне в голову приходит только заюзать сокеты - встроить в приложение ServerSocket и коннектиться к нему. Но может что готовое уже есть?

Заранее спасибо!
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
ValorVl
@ValorVl
DevOps
Конечно есть. Есть два варианта как всегда.

1. MBean читаем тут docs.spring.io/spring/docs/current/spring-framewor...
Как результат получаем возможность управлять приложением например через jvisualvm и плагин mbean к нему. Довольно удобно.
2. Самый удобный для меня вариант, если используется spring boot. Тут можно развернуться на docs.spring.io/spring-boot/docs/current/reference/...
Как итог получаем возможность подключатся к приложению по ssh, реализовывать свои консольные команды. А также получаем служебный REST API с кучей встроенного функционала.

Надеюсь помог.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ShamilSungatov
https://ru.wikipedia.org/wiki/%D0%A3%D0%B4%D0%B0%D...

Но мне кажется проще будет через webservices сделать
Ответ написан
Комментировать
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Есть еще костыльный вариант но тем неменее удобный во многих случаях.
Делаете обычный System.in\out консольный с нужными вам командами в самой софтине. Дальше пишете шеловый скрипт в котором описываете к пример start\stop\status\restart\exec(команда). Запуск софтины делать в screen с котором часть команд скрипта и будет работать. Софтину запускаете соответсвенно уже через этот скрипт.
На выходе получится следующее, штатно цепляетесь по ssh к серверу и дергаете этот скрипт как угодно. Так же в самом скрипте можно сделать автоматический рестарт софта если он упал.
Способ хоть действительно и костыльный но всетаки бывает очень удобным и за безопасность можно не переживать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы