2009-07-15 7 views
0

У меня есть приложение веб-сервера, работающее с JVM, где я управляю загрузчиком классов. Мое приложение имеет синглтон с титровой программой цикла. Во время перераспределения я очищаю все ссылки на класс (ы). Я выгляжу так, что мой синглтон с таймером Task не умирает. Я добавляю метод финализации с печатью. метод финализации никогда не вызывался. Любое решение?Redeploy a singleton with timer task

+0

Почему бы просто не позволить серверу управлять этим? –

ответ

4

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

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

0

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

Весна позаботится о проблемах передислокации для вас. Вам просто нужно определить метод destroy.