玩框架 scala POST 和 Future
Play framework scala POST and Future
我的控制器中有这个动作
def doRegister = Action { implicit request =>
Future {
Thread.sleep(5000)
}
Ok("")
}
这是路线
POST /api/checkout/register controllers.shop.checkout.CheckoutAuthController.doRegister
我想要 return Ok 结果,而不用等待 Future。
它适用于 GET 请求(立即 return 秒),但不适用于 POST。超时适用,进行调用的 javascript vuejs 项目必须等待。
根据 Mateusz 的建议,卸载对 separate thread pool 的阻塞调用,例如
val ecForBlockingTasks = ExecutionContext.fromExecutor(Executors.newFixedThreadPool(5))
def doRegister = Action { implicit request =>
Future {
Thread.sleep(5000)
}(ecForBlockingTasks)
Ok("")
}
确保在应用启动时只创建一次线程池,否则可能会导致资源泄漏。
我的控制器中有这个动作
def doRegister = Action { implicit request =>
Future {
Thread.sleep(5000)
}
Ok("")
}
这是路线
POST /api/checkout/register controllers.shop.checkout.CheckoutAuthController.doRegister
我想要 return Ok 结果,而不用等待 Future。
它适用于 GET 请求(立即 return 秒),但不适用于 POST。超时适用,进行调用的 javascript vuejs 项目必须等待。
根据 Mateusz 的建议,卸载对 separate thread pool 的阻塞调用,例如
val ecForBlockingTasks = ExecutionContext.fromExecutor(Executors.newFixedThreadPool(5))
def doRegister = Action { implicit request =>
Future {
Thread.sleep(5000)
}(ecForBlockingTasks)
Ok("")
}
确保在应用启动时只创建一次线程池,否则可能会导致资源泄漏。