Создать службу с Java, которая запускается при деактивации приложения?

#oracle #jakarta-ee #service #websphere #web-application-project

#Oracle #джакарта-ee #Обслуживание #websphere #веб-приложение-проект

Вопрос:

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

Ответ №1:

Поскольку используется Spring, его классы времени выполнения и планирования кажутся естественным выбором. Они работают как в 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
    }
}
  

Комментарии:

1. Спасибо за предложение, я постараюсь использовать это. И протестировать ее в моем приложении.