您如何使用CouchDB更改通知从Java进行持续更改?
发布时间:2020-12-14 05:57:22 所属栏目:Java 来源:网络整理
导读:我正在尝试使用 Java中的couchdb(连续)更改API,并发现在耗尽当前更改列表后,流似乎已关闭,而不是永远保持打开它应该如此. 我正在使用的代码如下.我希望永远不会退出while循环,但只要当前现有的更改完成流式传输就会立即执行.我对couchdb和Java都比较新,所以
我正在尝试使用
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并包含了我在代码中遇到的任何默认值.
设置心跳基本上意味着您将在客户端观察超时,即心跳周期没有换行意味着您肯定丢失了连接.我相信如果有心跳,CouchDB会禁用其超时检查. 在任何情况下,您应该期望在某个时刻关闭连接并为该条件编写代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |