J'essaie d'utiliser la COUCHDB (CONTINU) Changements API de Java et constater qu'après l'épuisement de la liste des changements de courant, le flux semble être fermé, ne pas rester ouvert pour toujours, car il est censé.
Le code que j'utilise est ci-dessous. Je m'attendrais à ne jamais abandonner la boucle tandis que la boucle, mais faites dès que les modifications actuellement existantes sont finies en cours de diffusion. Je suis relativement nouveau à la fois à Couchdb et à Java, il est donc difficile de manquer quelque chose d'évident. Quelqu'un peut-il me montrer comment écrire correctement? P>
3 Réponses :
Ceci est juste une supposition depuis que je n'en savais pas assez sur la mise en œuvre continue en continu Couchdb ou la mise en œuvre httpurlConnection. Mais il semble interdire des bugs dans le code des deux que si votre client de connexion Java a un délai d'attente inférieur à celui du battement de coeur par défaut pour les modifications continues de Couchdb, la connexion pourrait être terminée par le client Java. P>
Juste une pensée. P>
Vous pouvez utiliser Mais vous avez raison, je m'attendais également à ce que la connexion ne se ferme pas - semble aussi si aussi & heartbeat = 1000 code> pour obtenir CouchDB envoi de nouvelles lignes sur le fil chaque seconde. Qui gardera votre connexion ouverte jusqu'à ce que vous vous déconnectez et / ou que Couchdb soit arrêté. P>
conn.sedreadtimeout (0); code> n'aide rien. P>
Il y a en fait un délai d'attente par défaut de 60000 ms (60 secondes) sauf si une valeur d'expiration différente ou un battement de coeur est fourni. J'ai mis à jour le _changes wiki retour en octobre et incluse toutes les valeurs par défaut que j'ai rencontrées dans le code . P>
Réglage du battement de coeur signifie essentiellement que vous allez regarder pour un délai d'attente dans le client, c'est-à-dire qu'aucune nouvelle ligne pour la période de coeur signifie que vous avez définitivement perdu votre connexion. Je crois que Couchdb désactive sa vérification du délai d'attente s'il y a un battement de coeur. P>
Dans tous les cas, vous devriez probablement s'attendre à ce que la connexion soit fermée à un moment quelconque et code pour cette condition. P>