簡體   English   中英

Play框架2.1中的期貨之間的時間延遲

[英]Time delay between futures in Play framework 2.1

我有許多完全異步的消費作品,大致同時開始。 我的意思是這樣的:

for (i <- 1 to n) {
  Future { startWork("work" + i) }
}

但是我需要增加一些時間延遲來在不同的時間連續開始這些工作。 例如,如果(時間延遲= 1秒)=> i-work在i秒后開始。 怎么可以這么做?

謝謝!

Play集成Akka進行調度。 在Play的文檔中 ,您可以找到一個使用設置延遲運行一次代碼塊的示例:

import play.api.libs.concurrent.Execution.Implicits._
Akka.system.scheduler.scheduleOnce(10.seconds) {
    file.delete()
}

Akka的文檔中有關於其調度程序的更多信息。 示例中的參數( 10.seconds )是一個FiniteDuration ,因此在您的情況下,您可能希望將其設置為i seconds

喲道格! 我聽說你喜歡期貨,所以我將向你展示如何在未來執行未來,這樣你就可以在未來從未來創造其他期貨。

import play.api.concurrent.Akka
import scala.concurrent._
import scala.concurrent.duration._

val promise = Promise[Unit]
Akka.system.scheduler.scheduleOnce(1.seconds) { promise.success() }
promise.future.map { _ => /* The body of the Future to be run in the future */ }

這應該是一個非阻塞解決方案,可以延遲Future的執行,直到將來的某個時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM