Вызывать метод в Tomcat каждые 2 часа - PullRequest
1 голос
/ 06 февраля 2012

Я хочу вызывать метод parsePage () каждые 2 часа, метод обработает страницу и обновит информацию в базе данных. Я хочу поместить это на сервер Tomcat, и мой код выглядит следующим образом:

TimerTask parserTimerTask = new TimerTask() {
    @Override
    public void run() {
        MyParser.parsePage();
    }
};

Timer parserTimer = new Timer();
parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);

Я помещаю это в метод init () класса (который загружается при запуске).

Я правильно это делаю? Или есть лучший способ выполнить эту задачу?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Ваш подход должен работать.

Очевидно, вам также потребуется создать Timer и передать TimerTask соответствующему методу расписания, чтобы запустить повторное выполнение TimerTask, что-то вроде:

Timer timer=new Timer(true);
timer.schedule(myTimerTask, 0, 2*3600*1000L);

В более сложных средах вы можете захотеть использовать что-то вроде Quartz Scheduler . Это даст вам такие вещи, как лучшее ведение журнала, резервное переключение при сбое, более сложные расписания, контроль транзакций и т. Д. Но все это, вероятно, не обязательно для простого варианта использования.

1 голос
/ 06 февраля 2012

Здесь не так много информации, но в среде linux может иметь смысл использовать задание cron для вызова curl или wget для сервлета?

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