gpt4 book ai didi

scala - 如何使用Play Framework 2.1安排每小时的工作?

转载 作者:行者123 更新时间:2023-12-03 23:17:35 24 4
gpt4 key购买 nike

在播放1中,它只是:

@Every(value = "1h")
public class WebsiteStatusReporter extends Job {

@Override
public void doJob() throws Exception {
// do something
}
}


Play 2.1的等效功能是什么?

我知道Play使用akka,而我 found this code sample

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


但是作为Scala菜鸟,我不了解其运作方式。有人可以提供完整的可行示例(端到端)吗?

最佳答案

以下是code of mine的摘录:

import scala.concurrent.duration.DurationInt
import akka.actor.Props.apply
import play.api.Application
import play.api.GlobalSettings
import play.api.Logger
import play.api.Play
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.libs.concurrent.Akka
import akka.actor.Props
import actor.ReminderActor

object Global extends GlobalSettings {

override def onStart(app: Application) {

val controllerPath = controllers.routes.Ping.ping.url
play.api.Play.mode(app) match {
case play.api.Mode.Test => // do not schedule anything for Test
case _ => reminderDaemon(app)
}

}

def reminderDaemon(app: Application) = {
Logger.info("Scheduling the reminder daemon")
val reminderActor = Akka.system(app).actorOf(Props(new ReminderActor()))
Akka.system(app).scheduler.schedule(0 seconds, 5 minutes, reminderActor, "reminderDaemon")
}

}


它只是在应用程序启动时启动一个守护程序,然后每5分钟启动一次。它使用Play 2.1,并且可以正常工作。

请注意,此代码使用 Global object,它允许在应用程序启动时运行一些代码。

关于scala - 如何使用Play Framework 2.1安排每小时的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15073819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com