Вопрос

В веб-приложении Java (сервлеты/spring mvc), используя tomcat, можно ли запустить службу типа задания cron?

напримеркаждые 15 минут очищайте базу данных журналов.

Можете ли вы сделать это независимо от контейнера или его нужно запускать с помощью Tomcat или другого контейнера?

Укажите, гарантированно ли этот метод запускается в определенное время или метод запускается каждые 15 минут, но может быть сброшен и т. д.если приложение перезапускается (так в .net, если использовать таймеры)

Это было полезно?

Решение

Как документировано в Глава 23.Планирование и пул потоков, Spring поддерживает планирование через классы интеграции для Timer и Кварцевый планировщик (http://www.quartz-scheduler.org/).Для простых нужд я бы рекомендовал использовать JDK. Timer.

Обратите внимание, что планировщики Java обычно используются для запуска Java. рабочие места, ориентированные на бизнес.Для задач системного администратора (например, в приведенном вами примере) вам действительно следует предпочесть cron и традиционные инструменты администрирования (bash и т. д.).

Другие советы

Если вы используете Spring, вы можете использовать встроенные хуки Quartz или Timer.Видеть http://static.springsource.org/spring/docs/2.5.x/reference/scheduling.html

Это будет зависеть от контейнера.Вы можете сделать это на Java с помощью Кварц или просто использовать параллельные утилиты планирования Java (ScheduledExecutorService) или как задание cron на уровне ОС.

Каждые 15 минут кажутся экстремальными.Обычно я бы также советовал вам обрезать/удалять только файлы журналов, в которые больше не ведется запись (и они обычно переносятся на ночь).

Задания ориентированы на пакетную обработку.Либо с помощью ручного триггера, либо в стиле cron (как вам кажется).

Я все еще не понимаю, какова связь между веб-приложением и работой в стиле cron?Единственный вариант использования веб-приложения, о котором я мог подумать, - это то, что вы хотите иметь конечную точку HTTP для запуска задания (но это противоречит вашему утверждению о том, что это «стиль cron»).

Обычно используйте специальную структуру, которая решает «пакетные задания» в проблемной области.Могу порекомендовать кварц.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top