Рабочий фон JBoss

Я сделал JBoss (на самом деле Redhat EAP 6.2) веб-сервис RESTful (JAX-RS), который в основном запрашивает другой сервер Java. Это веб-приложение Java EE с Maven. Однако то, что я хотел бы сделать, это то, что мой сервер JBoss запрашивает другой сервер Java каждую минуту, и когда я запрашиваю свой сервер JBoss через веб-сервер, я могу получить всю историю запросов, отправленных фоновым работником на другой сервер Java. Хотя я могу сделать постоянство и т. д., мой вопрос заключается в том, как лучше всего создать фонового рабочего в этом JBoss?


person Andrew    schedule 09.02.2014    source источник


Ответы (1)


Если вы используете EJB3.1, вы можете использовать @Schedule для настройки задачи по расписанию/таймеру. Если вы не используете EJB3.1, а используете Spring, вы используете Spring @Scheduled. Если вы не используете оба, вы можете полагаться на сторонние службы планировщика, такие как Flux или Quartz, которые имеют более сложные функции планирования.

Например, используя EJB3.1, вы можете настроить что-то вроде этого:

import java.util.Date;

import javax.ejb.Schedule;
import javax.ejb.Stateless;

@Stateless
public class BackgroundTaskProcessing
{
      @Schedule(dayOfWeek = "*", hour = "*", minute = "*", second = "*/5", persistent = false)
      public void backgroundTask()
      {
                   System.out.println("I execute for every 5 seconds");
      }
}

Между прочим, я спросил что-то похожее, за которым вам может быть интересно следить. .

person IndoKnight    schedule 09.02.2014
comment
Но мне не нужен планировщик, я хочу, чтобы фоновый рабочий запускался при запуске jboss и постоянно работал. Дело в том, как 1. как запустить фонового рабочего во время запуска jboss, например. в каком классе 2. как запустить фонового рабочего jboss, например. какой класс - person Andrew; 16.02.2014
comment
Ну это то же самое но я не знаю 2х вещей: где запускать фоновый рабочий при старте, и что запускать. Я не уверен, что Scheduler будет правильно запускать с самого начала и запускать только 1 экземпляр. Поправьте меня, если я ошибаюсь. - person Andrew; 17.02.2014
comment
Может быть, вы можете использовать сеансовый компонент без сохранения состояния при запуске Jboss?mastertheboss.com/ejb-3/how-to-create-an-ejb-startup-service. - person IndoKnight; 18.02.2014