我正在对使用java程序运行couchdb清除的持续时间进行分析。使用ektorp处理couchdb连接和调用。对于少量文件进行清除,我收到了成功的回复。
但是当我清除~10000或更多时,我收到以下错误:
org.ektorp.DbAccessException: 500:Internal Server Error
URI: /dbname/_purge
Response Body:
{
"error" : "timeout",
"reason" : "{gen_server,call,
....
使用curl命令检查db状态时,实际进行了清除。但是这个超时不允许我监视java程序中清除方法的实际时间,因为这会引发异常。
在一些研究中,我认为这是由于erlang gen_server进程的默认超时值。反正我有没有解决这个问题?
我尝试过更改StdHttpClient的超时值无效。
HttpClient authenticatedHttpClient = new StdHttpClient.Builder()
.url(url)
.username(Conf.COUCH_USERNAME)
.password(Conf.COUCH_PASSWORD)
.connectionTimeout(600*1000)
.socketTimeout(600*1000)
.build();
答案 0 :(得分:2)
CouchDB Dev在这里。您不应该使用大量文档清除。这是为了从数据库中删除意外添加的数据,如信用卡或社会安全号码。这不适用于一般操作。
因此,您无法提出gen_server
超时:)