Поиск по memcached java в google, первый результат - Использование Memcached с Java .
Парень (который называет себя Просто какой-то случайный мудак в Интернете! ) предлагает Singleton на основе net.spy.memcached .Он в основном создает 20 потоков и соединений, создавая 20 экземпляров MemcachedClient.Для каждого запроса он выбирает один случайным образом.
Однако эти потоки и соединения никогда не закрываются, и они накапливаются каждый раз, когда я выполняю горячую замену приложения во время разработки (с предупреждениями от Tomcat 7).
SEVERE: The web application [/MyAppName] appears to have started a thread named
[...] but has failed to stop it. This is very likely to create a memory leak.
Глядя на MemcachedClient JavaDoc, я вижу метод, называемый shutdown , с единственным описанием «Немедленное выключение».Отключить что?Клиент?Сервер?Я полагаю, что это клиент, так как он находится в MemcachedClient, и я предполагаю, что этот метод закроет соединение и завершит поток. РЕДАКТИРОВАТЬ : да, он отключает клиента.
Вопрос 1 Как принудительно выполнить код очистки в Tomcat 7, прежде чем приложение будет заменено в «горячем» режиме?
Вопрос 2 Является ли этот подход использования memcached (с кодом очистки) корректным или лучше начать заново?