Повторно разверните синглтон с заданием таймера - PullRequest
0 голосов
/ 15 июля 2009

У меня есть приложение веб-сервера, работающее с JVM, где я управляю загрузчиком классов. У моего приложения есть синглтон с циклом таймера. Во время перераспределения я очищаю все ссылки на класс (ы). Похоже, мой синглтон с таймером не умер. Я добавляю метод финализации с печатью. метод finalize никогда не вызывался. Любое решение?

Ответы [ 2 ]

4 голосов
/ 15 июля 2009

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

Обратите внимание, что вы никогда не можете полагаться на finalize() вызываемого.

0 голосов
/ 15 июля 2009

С пружиной и кварцем все гораздо проще. В Spring вы можете определить bean-компонент как singleton (не совсем то же самое с шаблоном проектирования singleton, но он будет соответствовать вашим потребностям). Также Quartz гораздо более мощный / гибкий / простой в работе, чем TimerTask.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...