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

标签 java jboss java-ee-5

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

Executors.newSingleThreadScheduledExecutor() 是在 JBoss 上获取预定执行程序服务的正确方法吗?

据说不建议在 Java EE 平台上生成非托管线程。看起来这个线程将是一个非托管线程。

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

编辑

org.jboss.resource.work.JBossWorkManager 但我找不到计划工作的例子。

最佳答案

调用 Executors.newSingleThreadScheduledExecutor() 并不可怕,但最好避免在 EE 容器中使用。在 Java EE 5 中 use 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 annotation .

关于java - 在 Java EE 5 (JBoss) 平台上启动计划任务的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12106951/

相关文章:

java - 通过简单 HTTP GET/POST 的 JSON Web 服务

java - 如何在 Android 应用程序中更新信息

java - servlet 中的身份验证和授权

jakarta-ee - 如何在 jBoss 4.2 中查找 ejb?

java - 如何在不同端口后面的单个 JBoss AS 6 实例上运行不同的应用程序?

java - EJB3 和手动层次结构持久性

jakarta-ee - 如何在ejb 3.0中实现缓存?

java - 将对象从一种格式转换为另一种 Java(设计模式)

java - 除非持续流式传输,否则 TCP 套接字的延迟很差

java - Spring 3 表达式语言如何与属性占位符交互?