Таймеры EJB и надежность
Вопрос
Мне нужен метод, который вызывался бы на сервере приложений (Glassfish) каждые 5 секунд, несмотря ни на что.Достаточно ли надежны таймеры для этого?Какие у меня есть варианты?
Решение
Если только вы не работаете в системе реального времени, нет " таймера " собирается дать вам эту точность. Таймеры в общем обеспечивают «это произойдет, по крайней мере, в то время, которое вы хотите ... но, может быть, позже» такие вещи.
Это базовая ОС, а не Java.
Изменить.
При этом ... вы действительно имеете в виду " 5 секунд точно " или через несколько миллисекунд будет работать? Если спустя несколько миллисекунд сработает, то таймер подойдет Возможно, что иногда это «несколько миллисекунд» однако может быть несколько сотен, в зависимости от того, что происходит в системе (ОС, а также такие вещи, как сборка мусора в виртуальной машине).
Другие советы
Да, посмотрите на использование quartz api, это единственный бесплатный API планирования корпоративных классов для java, о котором я знаю. http://www.quartz-scheduler.org/
В настоящее время я использую его в большом кластеризованном финансовом приложении.Документы - это кошмар, но в целом они очень надежны.Это надежный инструмент, который вы собираетесь получить.
карл