支持多处理的轻量级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多处理模块,因此请注意 并行处理的注意事项。