【问题标题】:Where is the job support in Play 2.0?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 查看答案stackoverflow.com/a/32972812/342235

标签: jobs playframework-2.0


【解决方案1】:

修复了JonasAnso发布的原始接受答案中的链接

要获得 OnApplicationStart 的功能,您可以使用 Global onStart

在这里,您可以使用 Akka 安排您的演员。

希望对你有帮助。

【讨论】:

  • 从 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() 
            {
                ....
            }
        }
    );

【讨论】:

【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
相关资源
最近更新 更多