Создать сервис с Java, который запускается при развертывании приложения? - PullRequest
1 голос
/ 18 октября 2011

У меня есть веб-приложение с J2EE и Spring, связанное с базой данных Oracle 10g. Я хочу создать сервис на Java, который будет опрашивать статистику из базы данных и отправлять почту каждые 5 минут. Эта служба должна запускаться при развертывании приложения под Tomcat или в веб-сфере. Любые идеи Как это можно сделать ?? Спасибо

1 Ответ

0 голосов
/ 18 октября 2011

После использования Spring классы Time и планирование кажутся естественным выбором. Они работают как в Tomcat, так и в Websphere, просто создайте свою задачу как POJO и запланируйте ее:

<bean id="PollingTask" class="com.sth.PollingPOJO">
         <!-- properties, if any -->
</bean>

<task:scheduler id="scheduler" pool-size="1" />

<task:scheduled-tasks scheduler="scheduler">
    <!-- runs every 30 minutes -->
    <task:scheduled ref="PollingTask" method="run" fixed-delay="#{ 30*60*1000 }" />
</task:scheduled-tasks>

PollingTask выглядит так (обратите внимание, что он не должен реализовывать Runnable, метод "run" - это просто соглашение):

class PollingTask() {
    public void run() {
        // entry point
    }
}
...