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