Utilities for scala.concurrent.Future

future-util

Utilities for scala.concurrent.Future.

Add a following line to build.sbt.

libraryDependencies += "com.github.tkawachi" %% "future-util" % "0.0.2"

FutureScheduler

FutureScheduler schedules an execution after certain time.

Using Thread.sleep() blocks the running thread. It's not recommended to waste a thread when working with Future.

// NG: Blocking the thread in ExecutionContext.
val futureSum: Future[Int] = Future {
	Thread.sleep(1000)
	1 + 1
}

With FutureScheduler you can write:

import scala.concurrent.duration._
import com.tkawachi.github.future.FutureScheduler

// OK: Non-blocking.
val futureSum: Futue[Int] = FutureScheduler.schedule(1.second) {
	1 + 1
}

You can use akka.pattern.after() if you're using Akka. Otherwise try FutureScheduler.

NOTE: FutureScheduler uses one daemon thread to schedule executions.