python中一个好的持久同步队列
我现在不关心fifo或filo选项,但将来可能会更好 我要找的是一种很好的快速简单的方法,可以在磁盘上存储(最多一gig的数据或数千万个条目),可以通过多个进程获取和放置。这些条目只是简单的40字节字符串,而不是python对象。并不真正需要的所有功能 我见过这个 看起来很简单。它需要升级到新的队列版本python中一个好的持久同步队列,python,queue,Python,Queue,我现在不关心fifo或filo选项,但将来可能会更好 我要找的是一种很好的快速简单的方法,可以在磁盘上存储(最多一gig的数据或数千万个条目),可以通过多个进程获取和放置。这些条目只是简单的40字节字符串,而不是python对象。并不真正需要的所有功能 我见过这个 看起来很简单。它需要升级到新的队列版本 想知道有没有更好的?我担心在电源中断的情况下,整个pickle文件会损坏,而不仅仅是一条记录。使用文件不起作用 使用日志文件系统从电源中断中恢复。这就是他们的目的。尝试使用。它不是纯python
想知道有没有更好的?我担心在电源中断的情况下,整个pickle文件会损坏,而不仅仅是一条记录。使用文件不起作用 使用日志文件系统从电源中断中恢复。这就是他们的目的。尝试使用。它不是纯python,因为它使用RabbitMQ作为后端,但它是可靠的、持久的和分布式的,总之,从长远来看,比使用文件或数据库要好得多。我认为这就是您想要的。您可以选择队列作为访问类型。PyBSDDB是基于的Python模块。
它具有同步访问,并且可以从不同的进程访问,尽管我不知道从Python绑定中是否可以做到这一点。关于向数据库写入多个进程,我发现。这是一个非常古老的问题,但似乎是完成此类任务的一个很好的工具 持久队列实现了一个基于文件的队列和一系列 基于sqlite3的队列。目标是实现以下要求:
- 基于磁盘:每个排队项目都应存储在磁盘中,以防崩溃
- 线程安全:可由多线程生产者和多线程消费者使用
- 可恢复:进程重新启动后可以读取项
- 绿色兼容:可在greenlet或eventlet环境中使用
如果您知道数据的确切宽度,那么如果延迟不是问题,那么数据库也不是不合理的解决方案。您可以将sqlite用于一个非常简单的解决方案。日志记录有助于保持元数据(而不是数据)的一致性。仅使用普通文件很容易丢失数据。