Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CouchDB在第一次索引的中途因套接字错误54而停止_Couchdb_Couchdb Python - Fatal编程技术网

CouchDB在第一次索引的中途因套接字错误54而停止

CouchDB在第一次索引的中途因套接字错误54而停止,couchdb,couchdb-python,Couchdb,Couchdb Python,我试图按日期对Mac本地CouchDB数据库中的13000个文档进行排序,但每次都会挂起5407文档。我试着增加蒲团的超时容忍度,但没有效果。这是我收到的错误消息: 对于db.view中的行('index15/by_date_time',startkey=start,endkey=end): 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/client.py”,第984行,在iter中 文件“/Library/

我试图按日期对Mac本地CouchDB数据库中的13000个文档进行排序,但每次都会挂起5407文档。我试着增加蒲团的超时容忍度,但没有效果。这是我收到的错误消息:

对于db.view中的行('index15/by_date_time',startkey=start,endkey=end): 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/client.py”,第984行,在iter中 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/client.py”,行1003 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/client.py”,第990行,在 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/client.py”,第880行,在_exec中 get_json中的文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/http.py”,第393行 get中的文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/http.py”,第374行 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/http.py”,第419行,在请求中 请求中的文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/http.py”,第239行 文件“/Library/Python/2.6/site packages/CouchDB-0.8-py2.6.egg/CouchDB/http.py”,第205行,在带有重试的请求中 套接字错误:54

顺便说一句,这与我在脚本中输入错误时产生的错误消息相同

我使用couchpy创建视图,如下所示:

def dateTimeToDocMapper(文档):

在运行时,我可以打开一个python shell,使用server.tasks()可以看到索引确实正在进行

>>>server.tasks()

[{u'status':u'Processed 75 of 13567个更改(0%)'、u'pid':u'、u'task':u'gmail2(u design/index11',u'type':u'View Group Indexer'}]

但每次它在13567次更改中的5407次过程中卡住时(需要大约8分钟才能完成这一步)。我已经检查了我认为是5407号文件的内容,它似乎并没有任何异常之处

顺便说一句,如果我尝试在进程停止后重新启动它,我会从server.tasks()得到这个响应

>>>server.tasks()

[{u'status':u'Processed 0/8160个更改(0%)',u'pid':u'',u'task':u'gmail2\u design/index11',u'type':u'View Group Indexer'}]

换句话说,couchDB似乎已经认识到,它已经处理了13567项更改中的前5407项,现在只剩下8160项

但随后它几乎立即退出,并给我相同的套接字。错误:54

在过去的几个小时里,我一直在网上搜索,但没有结果。我尝试过从其他位置开始索引,比如Futon。正如我提到的,我的一个错误是操作系统超时错误,在Futon的配置中增加超时阈值似乎有助于解决这个问题

请,如果有人能解释这个问题,我将非常感激。我想知道是否有一种方法可以在它已经索引了5407个文档之后重新启动这个过程,或者更好的是,是否有一种方法可以防止它从一开始就退出1/3的过程


非常感谢。

根据我收集的信息,CouchDB通过将所有文档发送到couchpy view服务器来构建视图内容,该服务器在该文档上运行Python代码。如果该代码由于任何原因失败,CouchDB将被通知出了问题,这将停止视图内容的更新

因此,文档5408存在一些错误,导致Python代码行为异常。如果您需要更多帮助,我建议您将该文档发布在这里。或者,查看couchpy view服务器的日志:它们可能包含有关代码如何失败的信息

from dateutil.parser import parse
from datetime import datetime as dt
if doc.get('Date'):
    # [year, month, day, hour, min, sec]
    _date = list(dt.timetuple(parse(doc['Date']))[:-3])
    yield (_date, doc)