5 votes

Comment changer le délai d'attente futur avec play framework 2.1.0

J'appelle un webservice en utilisant play framework 2.1 qui prend plus de 10s. à cause de cela je reçois toujours l'erreur suivante :

play.api.Application$$anon$1: Execution exception[[TimeoutException: Futures timed out after [10000 milliseconds]]]
    at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.0]
    at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.0]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:132) [play_2.10.jar:2.1.0]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:128) [play_2.10.jar:2.1.0]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0]
java.util.concurrent.TimeoutException: Futures timed out after [10000 milliseconds]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:96) ~[scala-library.jar:na]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:58) ~[scala-library.jar:na]
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:86) ~[scala-library.jar:na]
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:86) ~[scala-library.jar:na]

comment puis-je augmenter la valeur du délai d'attente ?

J'ai essayé de changer les valeurs de :

promise.akka.actor.typed.timeout
play.akka.actor.typed.timeout

mais sans succès...

Merci d'avance pour votre aide

2voto

mguillermin Points 2259

Malheureusement, il est codé en dur dans le cadre... Voir https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/libs/concurrent/Promise.scala#L266

Il semble qu'une question soit déjà ouverte à ce sujet : https://github.com/playframework/Play20/issues/1002

2voto

Shawn Vader Points 3080

Il semble qu'il ait été corrigé dans la 2.3, mais ils ne vont pas faire de rétroportage vers l'une des versions de la 2.2.

    javaOptions in Test += "-Dtest.timeout=10000"

Comme j'utilise la version 2.2, cela ne fonctionne pas pour moi, mais j'espère que cela fonctionnera pour les utilisateurs de la version 2.3.

0voto

abbas Points 483

Si vous écrivez des tests unitaires, voici comment vous devez procéder.

@Test
public void testInServer() {
    running(testServer(3333), new Runnable() {
        public void run() {
            assertThat(
                WS.url("http://localhost:3333").get().get(timeout).getStatus()
            ).isEqualTo(OK);
        }
    });
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X