play2에서 Schedule작업을 하려면, Akka를 써야 한다.


https://www.playframework.com/documentation/2.2.x/ScalaAkka


단점이 하나 있는데, 주기만 있지 cron expression을 지원하지 않는다.

따라서, cron을 쓰려면 quartz java lib을 써야 한다. (이거 참 불편했다.)


import play.api.libs.concurrent.Execution.Implicits._
Akka.system.scheduler.schedule(0.microsecond, 300.microsecond, testActor, "tick")


import play.api.libs.concurrent.Execution.Implicits._
Akka.system.scheduler.scheduleOnce(1000.microsecond) {
  file.delete()
}





반면, play1에서는 play.jobs.Job을 상속한 클래스에서 annotation을 쓰면 되며, cron expression도 된다. 애플리케이션 시작할 때도 사용할 수 있다.. 


https://www.playframework.com/documentation/1.1/jobs



@On("0 0 12 * * ?")

@Every("1h")

@Every("1min")

@OnApplicationStart


Posted by '김용환'
,