Play 2.0 中的工作支持在哪里?
Posted
技术标签:
【中文标题】Play 2.0 中的工作支持在哪里?【英文标题】:Where is the job support in Play 2.0? 【发布时间】:2012-03-09 12:42:29 【问题描述】:在Play 1.0 中,我们可以定义一些将在后台执行的作业:
@OnApplicatonStart
@Every("1h")
public class DataJob extends Job
public void doJob()
// ...
但我在 Play 2.0 中找不到它。我错过了什么吗?
【问题讨论】:
@Peter Mortensen,感谢您纠正我的问题。 你好@Freewind 你有解决方案吗?如果是,请告诉我也知道。 @MuneebNasir 查看答案***.com/a/32972812/342235 【参考方案1】:修复了JonasAnso发布的原始接受答案中的链接
要获得 OnApplicationStart 的功能,您可以使用 Global onStart
https://www.playframework.com/documentation/2.4.x/api/scala/index.html#play.api.GlobalSettings https://www.playframework.com/documentation/2.4.x/api/java/play/GlobalSettings.html在这里,您可以使用 Akka 安排您的演员。
https://www.playframework.com/documentation/2.4.x/ScalaAkka https://www.playframework.com/documentation/2.4.x/JavaAkka希望对你有帮助。
【讨论】:
从 Play 2.4 看来,GlobalSettings 已被弃用?新的解决方案是什么?【参考方案2】:对于实际工作部分,这似乎是 Java 中的方式,
Akka.system().scheduler().schedule(
Duration.create(0, MILLISECONDS), // initial delay
Duration.create(5, MINUTES), // run job every 5 minutes
new Runnable()
public void run()
....
);
【讨论】:
更多详情请见playframework.com/documentation/2.3.x/ScalaAkka。【参考方案3】:您可以在 akka 中使用调度程序服务。
http://doc.akka.io/docs/akka/2.0/java/scheduler.html
http://doc.akka.io/docs/akka/2.0/scala/scheduler.html
基本上,您创建一个actor,如果它接收到特定消息,它就会执行您的逻辑。
【讨论】:
我想这不是我要找的。这些作业不需要由操作触发,它们只是在后台工作。 比如如何使用akka的调度器来实现@OnApplicatonStart
?以上是关于Play 2.0 中的工作支持在哪里?的主要内容,如果未能解决你的问题,请参考以下文章