在 jboss 个模块中使用定时器

Using timers in jboss modules

我需要在 jboss (JEE6) 中创建一个 timer/schedule 服务。问题是,它被部署为 jboss 模块。我知道如果部署为 EJB

,则以下代码有效
@Schedule(hour="*/1", persistent=false)

但如果以其他方式部署,它将不起作用。在 jboss 模块中创建和使用计时器有什么建议或标准方法吗?我想避免创建 TimerTask 的 core-java 方式。

jboss 模块是为了以高效的方式在应用程序之间共享代码而创建的。有关更多信息,请参阅 here。现在,因为模块没有部署在 EJB 容器中;不可能在这里使用 EJB 调度程序。在我们的案例中,可能的解决方案或解决方法是创建一个 EJB,它依赖于这些 jboss 模块,其方法将由调度程序调用。

例如,

@Singleton
@Startup
public class NotificationRecorderBean {


 @Inject
 private MyJbossModule myJbossModule;

 @Schedule(hour="*/1", persistent=false)
    public void execute() {
        LOGGER.debug("Recording notification count");
        myJbossModule.process();
   }

}