CouchDB在第一次索引的中途因套接字错误54而停止
我试图按日期对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在第一次索引的中途因套接字错误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/
非常感谢。根据我收集的信息,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)