Подтвердить что ты не робот

Можно ли запустить задание cron в веб-приложении?

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 3

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

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

Ответ 4

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

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

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