2012-12-31 19 views
0

我有以下@Singleton豆,我使用執行一些預定任務:如何從EJB容器中刪除Singleton bean的定時器取消部署?

@Singleton 
@Startup 
public class SqsScheduler { 

    // Logger------------------------------------------------------------------- 
    private static final Logger LOG = Logger.getLogger(SqsScheduler.class.getName()); 

    // Variables---------------------------------------------------------------- 
    Timer timer; 
    StoredDynamoQueries storedDynamoQueries = new StoredDynamoQueries(); 

    // Constructors------------------------------------------------------------- 
    public SqsScheduler() { 
     timer = new Timer(); 
     timer.scheduleAtFixedRate(new ScheduledTask(), 0, 180 * 1000); 
    } 

    // Methods------------------------------------------------------------------ 
    class ScheduledTask extends TimerTask { 

     @Override 
     public void run() { 

      // The scheduled tasks to perform 

     } 
    } 
} 

一切工作正常,當我取消部署/重新部署應用程序的TimerTasks沒有得到刪除,然後重新部署應用程序EXCEPT開始產生錯誤。如果我取消部署該應用程序,請重新啓動服務器(GlassFish 3.1.2.2),然後從頭開始部署該應用程序,它可以很好地工作。

如何在應用程序重新部署時除去定時器?

+1

與它的推薦使用Java EE [定時服務(HTTP的EJB的EJB:// docs.oracle.com/javaee/6/tutorial/doc/bnboy.html) – perissf

+0

感謝perissf,修復了它。 – tarka

回答

相關問題