我不会立即关心 fifo 或 filo 选项,但将来可能会很好。
我正在寻找一种快速简单的方法来在磁盘上存储(最多一千兆数据或数千万个条目),可以由多个进程获取和放置。这些条目只是简单的 40 字节字符串,而不是 python 对象。并不真正需要所有功能shelve http://docs.python.org/library/shelve.html.
我见过这个http://code.activestate.com/lists/python-list/310105/ http://code.activestate.com/lists/python-list/310105/看起来很简单。需要升级到新的Queue版本。
想知道是否有更好的东西?我担心,如果发生电源中断,整个腌制文件都会损坏,而不仅仅是一条记录。
这是一个非常古老的问题,但是persist-queue https://pypi.org/project/persist-queue/似乎是完成此类任务的一个不错的工具。
persist-queue 实现了一个基于文件的队列和一系列
基于 sqlite3 的队列。目标是实现以下要求:
- 基于磁盘:每个排队项目都应存储在磁盘中,以防发生崩溃。
- 线程安全:可供多线程生产者和多线程消费者使用。
- 可恢复:进程重新启动后可以读取项目。
- Green兼容:可以在greenlet或eventlet环境中使用。
默认情况下,persist-queue 使用 pickle 对象序列化模块来
支持对象实例。大多数内置类型,如 int、dict、list 是
可以直接通过persist-queue持久化,支持自定义
对象,请参阅 Pickling 和 unpickling 扩展
类型 (Python2) 和 Pickling 类实例 (Python3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)