6

我需要运行一个简单的计划任务,该任务将每 200 毫秒启动一次并执行一些简单的操作。

Executors.newSingleThreadScheduledExecutor()在 JBoss 上获取预定执行器服务的正确方法是什么?

据说不推荐在 Java EE 平台上生成非托管线程。看来这个线程将是一个不受管理的线程。

另一方面,我不想为这样简单的事情声明 MBean 等。

编辑

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

4

1 回答 1

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");
    }
}

在 Java EE 6 中,您有方便的@Schedule注解

于 2012-08-24T09:50:39.240 回答