我正在计划一种机制,其使用场景将类似于 cron 的。这是一种时钟机制,会在预先指定的时间尝试执行任务。Cron 似乎不适合,因为这些任务会触发 Scala 方法调用和存储在云数据库中的队列。
我想象它是这样的:每 x 分钟,从数据库中检索任务的执行日期,并与当前时间进行比较,如果任务过期,它会被执行并从队列中删除。
我的问题是:如何在分布式环境中每 x 分钟运行一次上述检查?
鼓励所有建议。
我正在计划一种机制,其使用场景将类似于 cron 的。这是一种时钟机制,会在预先指定的时间尝试执行任务。Cron 似乎不适合,因为这些任务会触发 Scala 方法调用和存储在云数据库中的队列。
我想象它是这样的:每 x 分钟,从数据库中检索任务的执行日期,并与当前时间进行比较,如果任务过期,它会被执行并从队列中删除。
我的问题是:如何在分布式环境中每 x 分钟运行一次上述检查?
鼓励所有建议。
我认为 Akka 调度程序可能是您正在寻找的。这是Akka 文档的链接,这是另一个描述如何在 Play 中使用 Akka的链接。
更新:正如 Viktor Klang 指出的 Akka不是调度程序,但它确实允许您定期运行任务。我在这种模式下使用它非常成功。
最著名的库是Quartz Scheduler。