Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.inject._
- import scala.concurrent.duration._
- import scala.concurrent.{ExecutionContext, Future, TimeoutException}
- import scala.language.postfixOps
- import play.api.mvc._
- import play.api.libs.concurrent.Futures
- import play.api.libs.concurrent.Futures._
- @Singleton
- class MyController @Inject()(cc: ControllerComponents)(implicit ec: ExecutionContext, f: Futures) extends AbstractController(cc) {
- def longComputation: Future[Int] = Future{
- Thread.sleep(2000)
- 1
- }
- def hey: Action[AnyContent] = Action.async {
- longComputation.withTimeout(5 seconds).map { i =>
- Ok("Got result: " + i)
- }.recover {
- case e: TimeoutException => InternalServerError(s"timeout: $e")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement