2017-04-12 33 views
0

我試圖在Play for Scala中實現Akka-Quartz-Scheduler。問題是調度器從不被觸發。未在Play for Scala中觸發Akka-Quartz-Scheduler

這是我quartz.conf,我試圖觸發一個事件,每分鐘:

akka { 
    quartz { 
    defaultTimezone = "UTC" 
    schedules { 
     cronFirst { 
     description = "job that fires off every minute" 
     expression = "0 0/1 * * * ?" 
     } 
    } 
    } 
} 

我通過調用調用test方法的頁面發起調度 - 這似乎很好地工作:

class Test @Inject() (system: ActorSystem) extends Controller { 

    def test = Action { request => 

     val scheduler = QuartzSchedulerExtension(system) 
     val receiver = system.actorOf(Props(new HelloActor)) 
     val d = scheduler.schedule("cronFirst", receiver, "Peter", None) 

     Ok(d+"") 
    } 
} 

這是永遠不會調用演員(永遠不會執行println):

object HelloActor { 
    def props = Props[HelloActor] 

    case class SayHello(name: String) 
} 

class HelloActor extends Actor { 
    import HelloActor._ 

    def receive = { 
    case SayHello(name: String) => 
     println("Hello, " + name) 
    } 
} 

回答

0

問題在於信息不正確。這解決了問題:

val d = scheduler.schedule("cronFirst", receiver, HelloActor.SayHello("Peter"), None)