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 中的工作支持在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

我们从哪里获得 .Net Standard 2.0 中的 System.IdentityModel

哪些浏览器支持Xpath 2.0?

Play 商店不支持开发中的 XCover 3 手机

Eclipse 中的 Grails 2.2.0 支持

Play 2.2.1 中的 SSL\TLS 支持

Play 商店中的 API 支持