Play框架提供了定時執行任務的功能模塊,也就是Job。你們能夠用來作一些定時的任務,如數據彙總,定時同步等。play使用了Quartz項目。能夠輕鬆地定製調度任務的時間。Play框架還預置了幾種調度方式,如項目啓動調度,啓動異步調動,每多少時間調度,和通用的Quartz調度設置。 首先咱們看看啓動調度,啓動調度是同步於項目啓動:html
package job; import play.jobs.Job; import play.jobs.OnApplicationStart; @OnApplicationStart public class JobOnStart extends Job{ @Override public void doJob() throws Exception { super.doJob(); System.out.println("Hello Job!"); } }
還有啓動異步調度:java
package job; import play.jobs.Job; import play.jobs.OnApplicationStart; @OnApplicationStart(async = true) public class JobOnStartAsync extends Job{ @Override public void doJob() throws Exception { super.doJob(); System.out.println("Hello Job, this is a async!"); } }
而後還有每多少時間調度:框架
package job; import play.jobs.Every; import play.jobs.Job; @Every("1min") public class JobOnSomeTime extends Job{ @Override public void doJob() throws Exception { System.out.println("Hello Clock! Minute Over!"); } }
還有通用的Quartz調度:異步
package job; import play.jobs.Job; import play.jobs.On; @On(value = "0 28 11 ? * *") public class JobOnCommon extends Job{ public void doJob() throws Exception { System.out.println("Hello 11:28!"); } }
控制檯的打印:async
11:26:17,730 INFO ~ Application 'Proto' is now started ! Hello Job! Hello Job, this is a async! 11:26:17,903 INFO ~ Listening for HTTP on port 9000 ... Hello Clock! Minute Over! Hello 11:28! Hello Clock! Minute Over! Hello Clock! Minute Over! Hello Clock! Minute Over!
Quartz 是個開放源碼項目,提供了豐富的做業調度集。上面表達式中@on註解對應的字段是: Seconds Minutes Hours DayofMonth Month DayofWeek Year(year爲可選字段,通常能夠省略) 如:0 28 11 ? * * :天天11點28分 24 30 1 ? * WED : 每週三1點20分24秒 ide
更詳細的介紹能夠查考官網: http://quartz-scheduler.org/ this
IBM的developerworks中也有文章: http://www.ibm.com/developerworks/cn/java/j-quartz/index.html code
百度文庫中的介紹: http://wenku.baidu.com/view/0e3b19e6f8c75fbfc77db22a.htmlhtm