2012-02-06 44 views
1

啓動計劃的作業我有這樣一個類:在遊戲

package jobs; 

import play.jobs.Every; 
import play.jobs.Job; 

@Every("5s") 
public class ScheduledJobs extends Job{ 

    @Override 
    public void doJob(){ 
     System.out.println("Job's done"); 
    } 

} 

而配置文件包含以下內容:

#Jobs executor 
# ~~~~~~ 
# Size of the Jobs pool 
play.jobs.pool=10 

# Execution pool 
# ~~~~~ 
# Default to 1 thread in DEV mode or (nb processors + 1) threads in PROD mode. 
# Try to keep a low as possible. 1 thread will serialize all requests (very useful for debugging purpose) 
# play.pool=3 

我的問題是怎樣才能得到發揮,開始運行這個任務每5秒鐘?如果我創建一個ScheduledJobs實例,並且我調用doJob,它只運行一次。感謝您的幫助。

編輯:

的ScheduledJobs被放置在一個工作包在我的應用程序目錄。

我嘗試了一切,但是作業沒有執行(即使我嘗試@OnApplicationStar或任何其他註釋,但作業並未開始,如果我調用新的ScheduledJobs().now(),我會在play.jobs.Job.java上得到空指針異常(Play 1.2.3) 我需要很快解決這個問題,請幫助我

回答

1

你不需要在代碼中調用任何東西來讓工作起作用。 (假設它處於DEV模式),然後它將每5秒開始執行一次作業。

+0

謝謝。 「application.mode = dev」在我的conf文件中,在prod模式下會發生什麼anywa YS? 但是當我向服務器發出我的第一個請求時,我的工作仍然沒有開始。 – 2012-02-06 22:37:21

+0

在prod模式下,它不應該等待我相信的第一個請求。你可以嘗試改變_ @ Every_來代替使用_ @ On_註解,例如。 _ @開(「0 * * * *?」)_每分鐘一次 – grahamrb 2012-02-06 23:05:58

+0

您可以查看播放狀態以查看此作業是否正在運行。 – James 2012-02-07 05:14:43