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
'scala' 카테고리의 다른 글
scala + spring boot + gradle (0) | 2015.10.19 |
---|---|
[scala] java.lang.VerifyError: class com.fasterxml.jackson.module.scala.ser.ScalaIteratorSerializer overrides final method withResolved. 해결하기 (1) | 2015.10.16 |
play2 (scala) jmx 사용하기 (0) | 2014.12.22 |
[scala] 생성자 만들기 - not enough arguments for constructor DefaultConsumer (0) | 2014.12.09 |
scala (activator) 사용 팁 (0) | 2014.12.09 |