持久(基于磁盘)和非持久(基于内存)队列的集合
项目描述
Queuelib是一个Python库,它实现了存储在内存中或持久化到磁盘的对象集合,提供了简单的API,并且运行速度快。
Queuelib提供了队列(FIFO)、栈(LIFO)、按优先级排序的队列以及按轮询方式清空的队列。
Queuelib 支持 Python 3.5+ 且无依赖。
安装
您可以通过 Python 包索引(PyPI)或源代码来安装 Queuelib。
使用 pip 安装
$ pip install queuelib
使用 easy_install 安装
$ easy_install queuelib
如果您已下载源码包,可以通过以下命令(以 root 用户身份运行)进行安装:
# python setup.py install
FIFO/LIFO 磁盘队列
Queuelib 提供了 FIFO 和 LIFO 队列实现。
以下是一个 FIFO 队列的示例用法
>>> from queuelib import FifoDiskQueue >>> q = FifoDiskQueue("queuefile") >>> q.push(b'a') >>> q.push(b'b') >>> q.push(b'c') >>> q.pop() b'a' >>> q.close() >>> q = FifoDiskQueue("queuefile") >>> q.pop() b'b' >>> q.pop() b'c' >>> q.pop() >>>
LIFO 队列在 API 方面相同,但需要导入 LifoDiskQueue。
优先队列
这是一个由多个 FIFO/LIFO 队列(每个优先级一个)组合而成的离散优先级队列。
首先,选择每个优先级要使用的队列类型(FIFO 或 LIFO)
>>> from queuelib import FifoDiskQueue >>> qfactory = lambda priority: FifoDiskQueue('queue-dir-%s' % priority)
然后使用它实例化优先队列
>>> from queuelib import PriorityQueue >>> pq = PriorityQueue(qfactory)
然后使用它
>>> pq.push(b'a', 3) >>> pq.push(b'b', 1) >>> pq.push(b'c', 2) >>> pq.push(b'd', 2) >>> pq.pop() b'b' >>> pq.pop() b'c' >>> pq.pop() b'd' >>> pq.pop() b'a'
轮询队列
它与优先队列具有几乎相同的接口和实现,但每个元素都必须带有一个(强制)键进行推送。从队列中弹出会按“轮询”方式遍历键。
与优先队列类似实例化轮询队列
>>> from queuelib import RoundRobinQueue >>> rr = RoundRobinQueue(qfactory)
然后使用它
>>> rr.push(b'a', '1') >>> rr.push(b'b', '1') >>> rr.push(b'c', '2') >>> rr.push(b'd', '2') >>> rr.pop() b'a' >>> rr.pop() b'c' >>> rr.pop() b'b' >>> rr.pop() b'd'
邮件列表
有关 Queuelib 的问题,请使用 scrapy-users 邮件列表。
错误追踪器
如果您有任何建议、错误报告或烦恼,请通过我们的问题追踪器报告: http://github.com/scrapy/queuelib/issues/
贡献
Queuelib 的开发在 GitHub 上进行: http://github.com/scrapy/queuelib
强烈鼓励您参与开发。如果您不喜欢 GitHub(出于某种原因),您也可以发送常规补丁。
所有更改都需要测试才能合并。
测试
测试位于 queuelib/tests 目录中。可以使用以下命令使用 nosetests 运行它们
nosetests
输出应类似于以下内容
$ nosetests ............................................................................. ---------------------------------------------------------------------- Ran 77 tests in 0.145s OK
许可协议
本软件根据 BSD 许可证授权。请参阅顶层发行目录中的 LICENSE 文件以获取完整的许可文本。
版本控制
本软件遵循 语义版本控制
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
构建发行版
queuelib-1.7.0.tar.gz 的散列
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2855162096cf0230510890b354379ea1c0ff19d105d3147d349d2433bb222b08 |
|
MD5 | 14c25b6f39478e5483a2f0ae42fcfeb1 |
|
BLAKE2b-256 | fba48af5d8ee3526c64a152549a1c7b42896be9fae9a2fda7712883dc09822ac |