2011-12-15 65 views
4

我有以下的作業類(我已經刪除了實際的職位代碼):PlayFramework作業多次執行?

@On("0 0 1 * * ?") 
public class DailyJob extends Job 
{ 
    @Override 
    public void doJob() throws Exception 
    { 
// I log from here   
    } 
} 

我的日誌告訴我,這份工作每天都在執行多次,而只應每天一次執行(在01:00)。今天它執行了4次。代碼在客戶服務器上的一個tomcat實例上運行。我認爲這個網站可能在多臺服務器上運行,但我問過這個問題,他們只說了一個。所以我會認爲4是不可能的。但是,我已經鎖定了函數(在一個靜態對象上),並且在鎖定/同步內部檢查並設置了上一個執行日期(statc - System.currentTimeMillis())。如果它不到10秒鐘,應該記錄下來。但是,即使作業在同一秒內執行了4次,也不會發生這種情況。所以我認爲它可能會在4種不同的環境下執行。

我認爲它可能在遊戲中運行1.2.2

任何想法?

+0

也許一個愚蠢的問題,但你檢查了日誌不寫4次? – emt14 2011-12-15 06:47:29

+1

:)我已經在與生產服務器相同的環境中運行的本地計算機上設置了此站點,並且僅記錄一次。我也得到了休眠鎖定/持久性異常,這表明更多的線程處理相同的東西。 (據我所知)(呃,顯然它不可能與prod系統100%相同,但或多或​​少) – bendahmon 2011-12-15 06:52:29

回答

0

我記得在最近的播放版本中修復了類似的錯誤。你有沒有試過使用遊戲1.2.4?