Как создать JOB с EJB 3.0 внутри JBOSS 4.3 - PullRequest
0 голосов
/ 12 января 2012

Как я могу создать задание, которое запускается каждые 6 секунд, и работа начинается автоматически при выполнении развертывания приложения?

В настоящее время у меня есть этот класс, который использует таймеры, но процесс не запускается автоматически, когданачать развертывание.

Все это с EJB 3.0 в JBoss 4.3 и EAR без WAR, только EJBs

@Stateless
public class MyJobBean implements MyJob {
private static final long EJECUTION_INTERVAL=6000;
@Resource
private TimerService ts;
@PostConstruct // This not work in deploy, only when somebody calls the EJB
public void init() { 
    System.out.println("Post Constructor Method init() Invoked"); 
    ts.createTimer(EJECUTION_INTERVAL, null);
}
@Timeout // Fired by the timer 
public void myJOBProcess(Timer timer) {
    System.out.println("the job was invoked");

    ts.createTimer(EJECUTION_INTERVAL, null); //create another future ejecution
}
@PreDestroy
public void tidyUp() {
    System.out.println("Canceling scheduled Timers");
    for (Object obj : ts.getTimers()) {
        Timer timer = (Timer)obj;
        timer.cancel();
        System.out.println("Timer Canceled");
    }   
}
}

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Слушатели сервлетов или сервлеты загрузки при запуске были единственным javaee-портативным способом автозапуска кода при развертывании до EJB 3.1 с аннотацией @Schedule.

0 голосов
/ 12 января 2012

В JBoss вы можете использовать MBean, которые определяются аннотированием сервиса с помощью @Service.Если есть метод public void start(), он будет вызван при запуске приложения.

...