对于基于Python / Django / Celery的部署工具,我们进行了以下设置:
需要满足以下规范:
实现此目的的首选方法是什么?
一些想法:
答案 0 :(得分:2)
表示1,2使用多个队列并使用-Q启动worker以指定要侦听的队列。 同时配置CELERYD_PREFETCH_MULTIPLIER = 1,一次只能执行一项任务。
要获得队列长度(使用rabbitmq测试),您可以使用以下内容:
from kombu.connection import BrokerConnection
connection = BrokerConnection(BROKER_HOST, BROKER_USER...)
channel = connection.channel()
q, j, c = channel.queue_declare('celery', passive=True)
print 'celery %d jobs in queue' % j
'queue_delcare'作为副作用,给你队列的长度。 希望这可以帮到你。
答案 1 :(得分:1)
我会看一下zeromq它可以在一个超快速库中进行消息传递和多线程处理。它还支持大量语言,并内置负载平衡。