2014-02-09 141 views
1

我做了基本上查詢另一個Java服務器的JBoss(真正的Redhat EAP 6.2)RESTful webservice(JAX-RS)。它是Maven的Java EE web應用程序。 然而,我想要做的是,我的JBoss服務器每隔1分鐘查詢一次其他Java服務器,並且當我通過Web服務器查詢我的JBoss服務器時,我可以將後臺工作人員發送的查詢的所有歷史記錄提交給其他java服務器。 雖然我可以做持久性等等,但我的問題是在JBoss中產生一個後臺工作者的最佳方式是什麼?JBoss後臺工作人員

回答

1

如果您使用的是EJB3.1,那麼您可以使用@Schedule來設置計劃/計時器任務。如果您不使用EJB3.1但使用Spring,那麼您使用Spring的@Scheduled。如果您不使用兩者,那麼您可能需要依賴第三方調度程序服務,如FluxQuartz,這些服務具有更復雜的調度功能。

例如使用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"); 
     } 
} 

順便說一句,我問什麼similar你可能有興趣留意。

+0

但我不想調度程序,我希望後臺工作人員在jboss啓動時啓動並始終保持運行。關鍵是如何1.在jboss開始時如何啓動後臺工作者,例如在哪個類中2.如何啓動jboss後臺工作者例如 – Andrew

+0

什麼類別的1點和2點之間有什麼區別? – IndoKnight

+0

嗯,這是同樣的事情,但我不知道2件事:在開始時從哪裏開始後臺工作,以及要開始什麼。我不確定Scheduler是否恰好在開始時運行並且只運行1個實例。糾正我,如果我錯了。 – Andrew