2012-02-06 2 views
1

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

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

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

Я положил это в классе (что нагрузка при запуске) 's метод Init().

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

Спасибо.

+0

Если вы решили придерживаться этого в tomcat, взгляните на Quartz, удобную библиотеку планирования. Он существует уже давно и по-прежнему поддерживается и до сих пор свободен. – lumpynose

ответ

2

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

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

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

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

+0

Да, у меня есть таймер и запланировано его, я отредактировал свой OP. Спасибо, что ответили. –

1

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

+0

Я запускаю Tomcat на экземпляре EC2 с Ubuntu. Я никогда не думал об этом, это имеет больше смысла, и я буду изучать его, спасибо! –

Смежные вопросы