在Java EE 5(JBoss)平台上启动计划任务的正确方法是什么?

Pio*_*zda 6 java jboss java-ee-5

我需要运行一个简单的计划任务,每200ms启动一次并做一些简单的事情.

Executors.newSingleThreadScheduledExecutor()在JBoss上获取的安排执行程序服务的正确方法?

据说不建议在Java EE平台上生成非托管线程.似乎这个线程将是一个非托管的线程.

另一方面,我不想为这么简单的事情声明MBeans等.

编辑

有一些东西,org.jboss.resource.work.JBossWorkManager但我找不到预定工作的例子.

Tom*_*icz 4

调用Executors.newSingleThreadScheduledExecutor()并不可怕,但在 EE 容器中最好避免使用。在 Java EE 5 中使用TimeoutService

@Stateless
public class TimerSessionBean implements TimerSession {
    @Resource
    TimerService timerService;

    public void startTimer() {
        Timer timer = timerService.createTimer(200, "Created new timer");
    }

    @Timeout
    public void timeout(Timer timer) {
        logger.info("Timeout occurred");
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Java EE 6 中,您可以使用方便的@Schedule注释