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),然後從頭開始部署該應用程序,它可以很好地工作。
如何在應用程序重新部署時除去定時器?
與它的推薦使用Java EE [定時服務(HTTP的EJB的EJB:// docs.oracle.com/javaee/6/tutorial/doc/bnboy.html) – perissf
感謝perissf,修復了它。 – tarka