Пул потоков обратной связи - PullRequest
0 голосов
/ 27 декабря 2018

Я использую Logback для регистрации, и у меня есть вопрос.Я использую AsyncAppender с ConsoleAppender.Когда приложение запускается, оно создает пул потоков с «logback-» именами потоков.Все работы по ведению журнала завершаются потоком «AsyncAppender-Worker-».Для чего был создан пул потоков с "logback-" именами потоков и какую работу он выполняет?

1 Ответ

0 голосов
/ 27 декабря 2018

Краткий ответ

Эти потоки используются для всех остальных задач, которые необходимо выполнять при входе в систему в фоновом режиме - основанные на времени ролловеры, приложения для сокетов, асинхронные устройства SMTP и т. Д.

Немного дольшеответ

Запустив поиск по «logback-» по базе кодов возврата , я нашел только одно место, где он используется: ExecutorServiceUtil.

Этот вспомогательный классиспользуется для создания сервисов-исполнителей (доступ к которым имеет только Contextbase.getScheduledExecutorService()), и отслеживая их использование, я обнаружил следующие применения:

  • Ролловер на основе времени будет сжиматься асинхронно (если сжатие включено) и очищать старыеархивы.Я предполагаю, что это потому, что сжатие старых файлов в потоке приложения было бы плохой вещью.
  • В приложениях сокетов есть поток соединителя, который переподключается в случае сбоя соединения, и асинхронный буфер сообщений, который обрабатывается в фоновом режиме.thread.
  • Приложение SMTP может быть асинхронным, если настроено таким образом - тогда оно также будет использовать фоновый исполнитель.

Это исчерпывающий список.Обратите внимание, что все это читается из исходного кода.Ролловер, основанный на времени, хотя и имеет абсолютный смысл быть асинхронным, не задокументирован, и поэтому может измениться.Документация по приложению сокета и приложению SMTP задокументирована для использования фонового потока.

...