我需要运行一个简单的计划任务,每 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/