JBoss 后台工作线程



我做了JBoss(实际上是Redhat EAP 6.2)RESTful webservice(JAX-RS),它基本上查询另一个Java服务器。它是带有Maven的Java EE Web应用程序。然而,我想做的是,我的 JBoss 服务器每 1 分钟查询一次其他 Java 服务器,当我通过 Web 服务器查询我的 JBoss 服务器时,我可以将后台工作者发送的所有查询历史记录提取到其他 Java 服务器。虽然我可以做持久性等等,但我的问题是在该 JBoss 中生成后台工作者的最佳方法是什么?

如果您使用的是 EJB3.1,则可以使用 @Schedule 来设置计划/计时器任务。如果你不使用EJB3.1,而是使用Spring,那么你使用Spring的@Scheduled。如果您不同时使用两者,那么您可能需要依赖第三方调度程序服务,如 Flux 或 Quartz,它们具有更复杂的调度功能。

例如,使用 EJB3.1,您可以设置如下内容 -

import java.util.Date;
import javax.ejb.Schedule;
import javax.ejb.Stateless;
@Stateless
public class BackgroundTaskProcessing
{
      @Schedule(dayOfWeek = "*", hour = "*", minute = "*", second = "*/5", persistent = false)
      public void backgroundTask()
      {
                   System.out.println("I execute for every 5 seconds");
      }
}

顺便说一下,我问了一些类似的东西,你可能有兴趣关注。

最新更新