2010-06-22 2 views

Répondre

4

Le paramètre maxIdleTime est transmis au gestionnaire Socket du système d'exploitation et devient la valeur du délai d'attente pour ce socket. Si l'autre extrémité de la connexion maintient la connexion active, la connexion ne sera jamais fermée par le système d'exploitation. Jetty's Thread attendra tant que le système d'exploitation considère que la connexion est toujours active.

3

L'heure maxIdle a été initialement transmise au socket sotimeout. Cependant, maintenant que la jetée est asynchrone, elle n'est pas strictement utilisée comme ça parce que le sotimeout ne s'applique qu'aux opérations de blocage.

En revanche, le délai d'attente est utilisé dans deux circonstances:

1) si une connexion est inactif (pas de réponse en circulation), alors si ce délai expire la connexion sera fermée. 2) si une opération d'E/S est tentée (normalement une lecture ou écriture bloquante à partir d'une servlet), alors le délai d'attente est appliqué presque comme s'il était implémenté avec un socket bloquant lu et c'était un siTimeout - ie si le IO lecture/écriture ne fait aucun progrès pour la période de temps, l'opération échouera avec une exception TimeoutException.

Note dans la jetée-9, maxIldeTime a été renommé idleTimeout

+0

Je ne peux pas définir ce paramètre de travail pour mon cas d'utilisation http://stackoverflow.com/questions/36885803/jetty-interrupt-long-lasting-requests- timeout-before && https://github.com/graphhopper/graphhopper/issues/636 ou ai-je mal compris votre réponse? – Karussell