在 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();
}
}
我需要在 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();
}
}