Playframework AskTimeoutException:超时-播放框架2.1

Playframework AskTimeoutException:超时-播放框架2.1,playframework,timeout,playframework-2.1,Playframework,Timeout,Playframework 2.1,我正在Play框架中开发一个元启发式算法,必须有一个不确定的超时。加载一小时后,我出现以下错误: [AskTimeoutException:超时] ! @6g40d7af9 - Internal server error, for (GET) [/planificar] -> play.api.Application$$anon$1: Execution exception[[AskTimeoutException: Timed out]] at play.api.Applica

我正在Play框架中开发一个元启发式算法,必须有一个不确定的超时。加载一小时后,我出现以下错误:

[AskTimeoutException:超时]

! @6g40d7af9 - Internal server error, for (GET) [/planificar] ->

play.api.Application$$anon$1: Execution exception[[AskTimeoutException: Timed out]]
    at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.1]
    at play.api.DefaultApplication.handleError(Application.scala:383) ~[play_2.10.jar:2.1.1]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:144) ~[play_2.10.jar:2.1.1]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:140) ~[play_2.10.jar:2.1.1]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) ~[play_2.10.jar:2.1.1]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) ~[play_2.10.jar:2.1.1]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend$1$$anonfun$apply$1.apply(Promise.scala:104) ~[play_2.10.jar:2.1.1]
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library.jar:na]
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library.jar:na]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
    at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
akka.pattern.AskTimeoutException: Timed out
    at akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:310) ~[akka-actor_2.10.jar:na]
    at akka.actor.DefaultScheduler$$anon$8.run(Scheduler.scala:193) ~[akka-actor_2.10.jar:na]
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:137) ~[akka-actor_2.10.jar:na]
    at scala.concurrent.forkjoin.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1417) ~[scala-library.jar:na]
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262) ~[scala-library.jar:na]
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) ~[scala-library.jar:na]
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478) ~[scala-library.jar:na]
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) ~[scala-library.jar:na]
有没有办法解决这个问题?。 谢谢

编辑:

这是我的控制器

public static Result planificar() {
        Carga.cargarGlobales();
        Moacs moacs = new Moacs(cargarParametros());
        moacs.ejecutar(); // metaheuristics algorithm
        List<Solucion> soluciones =  moacs.getConjuntoPareto();            
        return ok(soluciones);
    }
公共静态结果规划(){
卡加。卡加球目();
Moacs Moacs=新Moacs(cargarParametros());
moacs.ejecutar();//元启发式算法
List soluciones=moacs.getconcentopareto();
返回ok(soluciones);
}

您可以将超时设置为非常大的值。从Scala来看,
FiniteDuration
的范围仅限于+-(2^63-1)ns,约为292年

例如,可以这样做:

(someActor ? someMsg)(365 Days).map { x => .... }

您应该将其设置为异步控制器:

您好,感谢您的回答,但我可以在何处以及如何更改时间限制?鉴于您最近的编辑,James Ward的回答正是您所需要的。谢谢,async制作了​​我的算法比较慢(我不知道为什么),但现在运行正常。这很奇怪。不应该再慢了。