我已經創建了一個真實安排每天凌晨1:00運行功能doWork()
,功能如下:Java的定時服務運行多次
@Schedule(hour = "1", persistent = false)
public void doWork()
{
System.out.println("Starting .....\nTIME: " + System.currentTimeMillis());
System.out.println("this : " + this);
//Some code here, if-conditions and try/catch blocks. No loops
System.out.println("Exiting .....\nTIME: " + System.currentTimeMillis());
System.out.println("this : " + this);
}
的問題是,這個函數運行不止一次,而不是按計劃進行。
一旦我創建它,它就像預期的一樣運行(每天早上1:00:00)。幾天後,它開始在1:03:00運行(這沒有任何意義,因爲它是非持久的,並且服務器中沒有停機時間)。之後,該功能開始運行不止一次,間隔非常短(秒差)
有誰知道什麼可能會導致這種情況,或告訴我我能做些什麼來解決它?
[編輯]: 環境的詳細信息
應用服務器:在WebSphere Application Server 8.5.5
IDE:Rational Application Developer的9.1
數據庫管理系統:IBM DB2 10.1
您正在使用哪個應用程序服務器(和版本)?這可能有助於檢查是否存在與該AS相關的問題。 –
你如何記錄服務運行的時間?日誌輸出?系統/服務器時間? – kolossus
@OlivierGrégoire我正在使用WebSphere Application Server 8.5.5 –