支持多处理的轻量级python作业队列

lightqueue的Python项目详细描述


lightqueue是处理作业的轻量级作业队列(python 函数调用)。

要安装它:

$ pip install lightqueue

安装lightqueue(和redis)之后,就可以开始对作业进行排队了。 假设在名为mymodule的模块中有这样的函数

def myfunc(num):
  print sum([x for x in range(num)])

要将此函数的执行作为作业添加到lightqueue中,请执行以下操作:

>>> from lightqueue.queue import Queue
>>> from mymodule import myfunc
>>> q = Queue()
>>> q.enqueue(myfunc, 9999) # add the job myfunc(9999) to the queue
>>> q.enqueue(myfunc, 1234567) # add the job myfunc(1234567) to the queue

要开始处理这些作业,请在shell提示符中键入:

$ lightqueue start

更改数据库服务器

默认情况下,lightqueue向redis服务器添加作业并处理来自redis服务器的作业 位于本地主机:6379,db=0。要更改这些设置,请执行以下操作:

>>> Queue q = Queue(host='myredishost', port=7323, db=4)

然后给lightqueue进程相同的设置:

$ lightqueue start -host myredishost -port 7323 -db 4

并行处理

默认情况下,lightqueue一次处理队列中的一个作业。 要同时处理多个作业(例如4),请启动lightqueue 使用以下命令行参数:

$ lightqueue start -e parallel -workers 4

这使用了python多处理模块,因此请注意 并行处理的注意事项。

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

推荐PyPI第三方库


热门话题
java Spinner选定值未上载到firebase数据库   java如何通过bukkit中的配置添加消息?   java在SharedReference中保存列表的泛型类型   javascript Java小程序未定义   swt在Java中构建控制台应用程序   java OAuth同意屏幕没有突然显示,没有错误?   java webview选择文件安卓不工作   java Spring boot JPA如何从同一连接添加多个数据库?   java JDBC DB2驱动程序计时器线程处于阻塞状态   java我在vscode中运行flatter时看到一个错误在phone中运行应用程序somone能否帮助我plz   Java:生成JSON:如何避免生成不完整的JSON   java Date compareTo()方法始终返回1   当使用Junit runner运行测试时,java Spring自动连线失败   java Android/Sockets如何将信息从主UI线程发送到socket线程?   java Android内存声明全局变量   java如何在JBoss中拥有多个具有相同JNDI名称的数据源?   python在Java中嵌入CPython时,为什么会挂起?   java如何提供深度模拟对象?   java“find:smallint,expected:integer”Hibernate对informix数据库的验证在短时间内失败