java - Scala中如何在特定时间安排任务?

标签 java scala playframework

我想在每天的特定时间执行我的 Scala 函数 cleaner.run()。我正在阅读有关 Akka 和 Play 框架的内容。然而,看起来 Akka 支持间隔,例如“每30分钟执行一次任务”,但不支持精确时间执行任务。 如果有人可以帮助我将事情按顺序排列(使用我的特定示例),我将不胜感激,因为我有点想念我阅读的所有信息和论坛主题。

所以,这是我的 Scala 对象,我想在每天 23:55 安排 cleaner.run()

object MyTestManager {

  def main(args: Array[String]) {

    val cleaner = new Cleaner()

    cleaner.run()

  }
}

我有兴趣做这样的事情,但找不到将其传递给 Scala 2.10 的方法。

import play.jobs.*;

/** Fire at 12pm (noon) every day **/ 
@On("0 0 12 * * ?")
public class Bootstrap extends Job {

    public void doJob() {
        Logger.info("Maintenance job ...");
        ...
    }

}

另外,打包Scala代码后,启动应用程序以使其在每天23:55继续执行的正确方法是什么?一个简单的 java -jar target/scala-2.10/my- assembly-1.0.jar 可以完成这项工作,还是只执行一次代码?

最佳答案

您正在寻找的是Akka-Quartz .

那里有一个触发器功能。使用该功能您可以完成您的任务。

有关更多信息,请查看此处:

  1. How to fire akka scheduler daily for a particular time?
  2. https://blog.knoldus.com/2016/01/18/code-dissection-akka-quartz-scheduler-scalas-way-of-scheduling/

关于java - Scala中如何在特定时间安排任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40573187/

相关文章:

java - 使用 Play Framework 在 hibernate 中绑定(bind)多个值

java - 何时调用job.getJobID()?

scala - 如何使用 Maven 依赖项将 Play Framework 2.0 集成到 Gradle 构建管理中?

java - Play Framework : Redirect to controller method with arguments

scala - SBT - 运行任务以设置 SettingKey

scala - foreach和枚举

scala - 为什么 Option 会扩展 Product?

java - 使用父进程类路径启动Java子进程

java - Delombok 源代码添加了 jar 依赖项

java - Maven:依赖管理的优点