couchdb的多进程批量上传助手

mpcouch的Python项目详细描述


状态

这个还没有完成,但是已经可以使用了。

历史记录

电压0.2.7

  • 更新了自述文件

电压0.2.6

  • 引入了jobsbuffersizemax参数来限制工作内存中缓冲的上载处理量。现在可以处理无限大的数据了。

电压0.2.5

  • 只生成一个用于执行上载的并发进程

电压0.2.4

  • 工作版本,仍然跨越无限数量的进程

用法

创建新的mpcouchpusher对象

myCouchPusher = mpcouch.mpcouchPusher( "http://localhost:5984/myDatabase", 30000 )

如果创建数据的速度比上载速度快,则可能需要在允许缓冲另一批上载过程之前暂停生成新文档。缓冲上载进程的数量由可选的jobsbuffersizemax参数指定,该参数默认为10。这意味着,当已经有10个批上载进程在等待执行时,模块将保持主python线程,直到一个进程完成。 通过调整此值,可以在上载缓冲区(工作内存)和文档生成速度之间找到平衡。

每次准备好将一个文档存储在数据库中时,请使用此对象:

myCouchPusher.pushData(myNewDocument)

该模块将收集所有文档,直到达到阈值(在我们的示例中,这将是上面指定的30000个文档),并将它们作为批处理上载到couchdb,couchdb也是在对象创建时指定的(mycochdbdatabase)。

由于每次批量上传都是由一个进程执行的,因此当上传在后台进行时,原始程序将继续运行。

要等待所有正在运行的上载完成并确保将最后一批文档推送到服务器,请运行

myCouchPusher.finish()

在你的最终文件被发送到pushdata之后。 模块现在等待所有上传完成,并上传最后一批收集的文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JUnit5中定义优先级   Web驱动程序将焦点切换到iframe的java困难   java JFileChooser没有文件名文本字段选项   本地化是否可以回退到Java中resourcebundle的宏语言(例如,nynorsk>norsk)   禁用时Java断言的性能拖动   未考虑执行中的java jsonschema2pojo maven插件配置   java微调器。setSelection未调用setOnItemSelectedListener函数   序列化XStream:序列化java的反序列化。sql。时间导致错误   java无法理解为什么“ajpnio8009execXX”线程在AbstractQueuedSynchronizer$ConditionObject上阻塞/等待时间。等候   Java date给我的格式是mm/dd/yyyy,其中jquery datepicker的日期格式是dd/mm/yyyy   jsf如何用javaweb应用程序在客户端重写csv文件   雅加达ee Java邮件Api,无法从outlook客户端读取“.msg附件”   java PreparedStatement性能调优