【问题标题】:Play 2.0.3 still getting Futures timed out after [5000] after setting promise.akka.actor.typed.timeout在设置 promise.akka.actor.typed.timeout 后,玩 2.0.3 在 [5000] 之后仍然会超时
【发布时间】:2023-03-22 17:20:01
【问题描述】:

即使我将以下超时值设置为 10 秒,我仍然会收到此错误。系统是Play 2.0.3。

2012-08-14T08:52:20+00:00 app[web.1]: play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[TimeoutException: Futures timed out after [5000] milliseconds]]
2012-08-14T08:52:20+00:00 app[web.1]:   at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1-2.0.3.jar:2.0.3]
2012-08-14T08:52:20+00:00 app[web.1]:   at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1-2.0.3.jar:2.0.3]
2012-08-14T08:52:20+00:00 app[web.1]:   at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor-2.0.2.jar:2.0.2]
2012-08-14T08:52:20+00:00 app[web.1]:   at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1-2.0.3.jar:2.0.3]
2012-08-14T08:52:20+00:00 app[web.1]:   at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor-2.0.2.jar:2.0.2]
2012-08-14T08:52:20+00:00 app[web.1]:   at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor-2.0.2.jar:2.0.2]
2012-08-14T08:52:20+00:00 app[web.1]: Caused by: java.util.concurrent.TimeoutException: Futures timed out after [5000] milliseconds
2012-08-14T08:52:20+00:00 app[web.1]:   at akka.dispatch.DefaultPromise.ready(Future.scala:870) ~[akka-actor-2.0.2.jar:2.0.2]
2012-08-14T08:52:20+00:00 app[web.1]:   at akka.dispatch.DefaultPromise.result(Future.scala:874) ~[akka-actor-2.0.2.jar:2.0.2]
2012-08-14T08:52:20+00:00 app[web.1]:   at akka.dispatch.Await$.result(Future.scala:74) ~[akka-actor-2.0.2.jar:2.0.2]
2012-08-14T08:52:20+00:00 app[web.1]:   at play.api.libs.concurrent.AkkaPromise.await(Akka.scala:43) ~[play_2.9.1-2.0.3.jar:2.0.3]
2012-08-14T08:52:20+00:00 app[web.1]:   at play.api.libs.concurrent.Promise$class.await(Promise.scala:55) ~[play_2.9.1-2.0.3.jar:2.0.3]
2012-08-14T08:52:20+00:00 app[web.1]:   at play.api.libs.concurrent.AkkaPromise.await(Akka.scala:28) ~[play_2.9.1-2.0.3.jar:2.0.3]



$ tail -1 conf/application.conf 
promise.akka.actor.typed.timeout=10s

【问题讨论】:

  • 我在 Play 2.1 中得到了相同的行为,但只是有时。我无法确定究竟是什么原因造成的。我几乎不直接使用作业或 Akka,我只有一个从 onstart 调用的 Akka 调度程序:Akka.system.scheduler.schedule(10 seconds, 10 seconds, monitorActor, Tick)。你能解决这个问题吗?
  • 你可以试试 play.akka.actor.typed.timeout=12s

标签: playframework akka


【解决方案1】:

试试:

play.akka.actor.typed.timeout=10s

【讨论】:

  • 我试过了,但在 [5000] 毫秒后仍然让 Futures 超时。
  • 顺便说一句,我将此配置添加到additionalConfiguration并在测试用例中使用它,如下所示:play.api.test.FakeApplication(path, classloader, Scala.toSeq(additionalPlugins), Scala.toSeq(withoutPlugins) , Scala.asScala(additionalConfiguration) );
  • additionalConfiguration 是什么意思?这应该在您的conf/application.conf 文件中。您可能还想尝试设置play.akka.actor.retrieveBodyParserTimeout=10s
  • 我的意思是我把这个配置放到了一个测试用例的 FakeApplication 中。但是,该测试用例仍然因 [5000] 超时而失败。
  • 到目前为止,我仍然无法验证“play.akka.actor.typed.timeout”是否正常工作。如果我看到它有效,我会在这里再次评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多