Scala - ScheduledFuture 質問する

Scala - ScheduledFuture 質問する

私はScalaでスケジュールされた未来を実装しようとしています。特定の時間を待ってから本体を実行したいと思います。これまで、次の単純なアプローチを試しました。

val d = 5.seconds.fromNow

val f = future {Await.ready(Promise().future, d.timeLeft); 1}

val res = Await.result(f, Duration.Inf)

しかし、将来的に TimeoutExcpetion が発生します。これは正しいアプローチですか、それとも Java の ScheduledExecutor を使用するだけでよいのでしょうか?

ベストアンサー1

Akka には akka.pattern があります:

def after[T](duration: FiniteDuration, using: Scheduler)(value: ⇒ Future[T])(implicit ec: ExecutionContext): Future[T]

「指定された期間後に指定された値の成功または失敗で完了する scala.concurrent.Future を返します。」

http://doc.akka.io/api/akka/2.2.1/#akka.pattern.package

おすすめ記事