2014-11-18 2 views
0

я написал приложение автономного Java (консоль), которая работает в цикле:Просить приложение, что он делает (Java, автономная консоль приложение)

  1. Проверьте базу данных для новых задач для выполнения
  2. выполнять задачи
  3. Обновление базы данных с результатами
  4. Сон в течение п минут до пробуждения, чтобы повторить вышеописанную

Итак, это в основном, демон в фоновом режиме. Я хотел бы добавить возможность запросить приложение «Привет, приложение, над чем вы сейчас работаете? Можете ли вы дать подробную информацию о своей текущей задаче?» И т. Д. ». В идеале, приложение будет иметь простой способ запросить его для своего состояния, но я не уверен, как это добавить. Я просмотрел Restlet и рассмотрел signal handling, но я ищу предложения от других.

Я не смотрю на регистрацию прямо сейчас, так как файлы журнала могут быть очень большими, и было бы замечательно, если бы приложение только генерировало информацию по запросу, а не всегда генерировало ее (я хотел бы свести к минимуму воздействие этой функции на производительность приложения).

Пробовал ли кто-нибудь еще это делать или есть рекомендации? Заранее спасибо.

+0

Похоже, * слишком широкий * вопрос. Вы должны обратить вспять вопрос: пакет проще, чем пользовательский интерфейс, поэтому представьте, какое взаимодействие вы хотите, с каким интерфейсом (только текст, локальный графический интерфейс, веб-интерфейс и т. Д.) И просто используйте рабочий поток (ы) для выполнения задания. –

ответ

2

Нет причин опасаться регистрации, потому что он может заполнить диск. Посмотрите на Log4J, который имеет встроенный журнал вращения. Кроме того, вы можете изменять уровни журналов во время выполнения, поэтому вам не нужно постоянно вести подробные протоколирования или для всех частей кода.

+0

Зачем добавлять зависимость от Log4J, которая сделает приложение менее портативным, когда пакет [java.util.logging] (https://docs.oracle.com/javase/8/docs/api/java/util/logging/) FileHandler.html) может сделать то же самое? – VGR

+0

Поскольку Log4J больше, чем файловый регистратор, а запрос запрашивает способы получения различной информации из работающей виртуальной машины. Используя оба в нескольких крупных проектах, я бы рекомендовал Log4J. – jdv

+0

Вы, кажется, подразумеваете, что java.util.logging - это всего лишь регистратор файлов. Я почтительно не согласен. И следует отметить, что, поскольку он основан на Log4J, это, по сути, интегрированная версия Log4J. – VGR

Смежные вопросы