gpt4 book ai didi

couchdb - 您如何使用 Java 中的 CouchDB 更改通知连续更改?

转载 作者:行者123 更新时间:2023-12-04 10:59:06 25 4
gpt4 key购买 nike

我正在尝试使用 Java 中的 couchdb(连续)更改 API,发现在用尽当前更改列表后,流似乎已关闭,而不是像预期的那样永远保持打开状态。

我正在使用的代码如下。我希望永远不会退出 while 循环,而是在当前现有的更改完成流式传输后立即退出。我对 couchdb 和 Java 都比较陌生,所以可能会遗漏一些明显的东西。谁能告诉我如何正确地写这个?

URL url = new URL("[path to database here]/_changes?feed=continuous";);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while((line = reader.readLine()) != null){
// do something with the line here
}
// Should never get here under normal circumstances
reader.close();

最佳答案

除非提供不同的超时值或心跳,否则实际上默认超时为 60000 毫秒(60 秒)。我更新了 _changes wiki page回到 10 月份,并包含了我在代码中遇到的任何默认值。

设置心跳基本上意味着您将在客户端观察超时,即心跳期间没有换行符意味着您肯定已经失去了连接。如果有心跳,我相信 CouchDB 会禁用其超时检查。

在任何情况下,您都应该期望连接在某个时间点关闭并针对该条件编写代码。

关于couchdb - 您如何使用 Java 中的 CouchDB 更改通知连续更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1640653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com