我在我的web應用程序中使用Timertask
在每天午夜24小時啓動一次後臺線程。所以我有一個ServletContextListener並在contextInitialized中創建了一個Timertask對象timertask(say)和一個Timer對象say t。計時器任務不運行
我打電話
t.schedule(timertask, firstTime.getTime(), rescheduleMiliSec);
其中firstTime.getTime() = midnight
和rescheduleMiliSec = 24 hr
。 線程啓動罰款和做什麼是應該在DIT.Every做24個小時,它會啓動後臺任務。
當它移動到PROD時,線程只會在上下文初始化時運行一次,但不會在此之後運行。
是否有任何具體的設置可能是這個原因?
當上下文首先初始化,所述TimerTask的正常運行,並且沒有例外。後來也沒有例外。它只是不運行。 – Victor 2010-10-22 22:38:17
由於這個問題是迫切需要我來解決,如果實際的解決方案是很難找到的,像下面一個解決辦法也將正常工作。我仍然需要儘管實施它的一些幫助:由於邏輯駐留在contextinitialised(),每次應用程序重新部署時,上下文將初始化和邏輯運行。有沒有辦法在午夜時分自動重新部署應用程序?也許是一個腳本?這是一個有點凌亂,但它現在做... – Victor 2010-10-22 23:09:54
@ user454671,更新我的答案。關於重新部署應用程序,你可能會考慮一個時間工作......但這似乎不是一個合理的解決方案。 – 2010-10-23 05:06:43