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

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中是否有数字的默认类型   java调用一个类的方法来使用另一个类的实例   java HtmlUnit不适用于javascript处理   java需要帮助才能连接MongoDB   java如何从Maven中的src/main/resources复制文件?   java保存Int值(共享首选项)   从另一个类调用方法时,java Autowired组件出现空指针异常   java Spring JPA:PropertyAccessException 1:。。。MethodInvocationException:。'driverClassName'。。。org/postgresql/Driver:不支持的专业。次要版本52.0   java使用增强的JDO模型类在Eclipse中运行Junit测试   java如何使用eclipse IDE为junit创建可运行的jar文件   java如何在安卓中检测应用程序的启动和退出   java在其他线程可以访问静态映射时从数据库更新静态映射   java@Entitty和@EntityScan不起作用。我正在使用SpringBoot和jpa存储库,发生了很多次   java如何与google日历集成?