支持任务分类的优先级队列

taskq的Python项目详细描述


支持任务分类的优先级队列

Current build statusLatest PyPI version

概述

taskq是一个基于堆的优先级队列,它将支持添加到 将任务划分为多个类别以进行选择性删除。

项目的主要驱动程序是工作/任务队列,其中作业 需要分配给具有不同能力和 非均匀处理时间(用于计算有效预取)。

此库不是线程安全的,不打算用作替换 对于python的queue.queue类。

开始

使用pip

安装
pip install taskq

基本fifo用法:

>>> from taskq import Queue
>>> q = Queue()
>>> q.push('task1')
>>> q.push('task2')
>>> q.pop()
'task1'
>>> q.pop()
'task2'

任务优先级(也支持定义cmp的复杂类型):

>>> from taskq import Queue
>>> q = Queue()
>>> q.push('task1', 2)
>>> q.push('task2', 1)
>>> q.pop()
'task2'
>>> q.pop()
'task1'

多重流行:

>>> from taskq import Queue
>>> q = Queue()
>>> q.push('task1')
>>> q.push('task2')
>>> q.push('task3')
>>> q.pop(2)
['task1', 'task2']

任务类别:

>>> from taskq import Queue
>>> q = Queue()
>>> q.push('task1', category='foo')
>>> q.push('task2', category='bar')
>>> q.push('task3', category='foo')
>>> q.pop(2, categories=['dog', 'foo'])
['task1', 'task2']

分类比率:

>>> from taskq import Queue
>>> q = Queue()
>>> q.push('task1', category='foo')
>>> q.push('task2', category='bar')
>>> q.push('task3', category='foo')
>>> q.pop(2, categories=['bar', 'foo'], ratios=[1, 0.5])
['task1', 'task2', 'task3']

当预取/分发具有 非均匀加工持续时间。如果类别比率代表 平均持续时间为秒,计数可用于近似拉动。 计算队列中优先级最高的任务的秒数。

有关其他功能示例,请参见源文档。

问题

taskq的源代码托管在GitHub上。任何错误报告或功能 可以使用github的issues system发出请求。

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

推荐PyPI第三方库


热门话题
正在从节点解密字符串。Java中的js?   java未来超时和IO超时   java apache camel多播以异步方式执行聚合   java需要710次尝试在Android和Raspberry Pi之间建立socket连接   在Java中使用“+,”循环绘制形状   java安卓:如何计算两点之间的距离   java多线程Hello World   刷新后缓存共享变量的java Freemarker模板   java我试图通过迭代用整数填充数组,但我得到了ArrayIndexOutOfBoundsException   JNI C++到java 32位图像的不正确显示   java哪个更快:克隆还是使用流?   java cache2k和Generic T不能很好地结合在一起   java如何在读取文件之前更新文件内容?   java如何在GWT中从JSNI方法调用JSNI方法   将MySQL类型文本映射到Java Hibernate的类型   java如何按长度对字符串排序   java RecyclerView:在滚动期间不断更改数据