我正在尝试使用rabbitmq 获得一个基本的队列系统,但是当我尝试使用线程时,它似乎只运行1 个线程。
my code:
import pika
import threading
rabbit_url = "amqp://user:[email protected] /cdn-cgi/l/email-protection:5672/%2f"
def start(max_threads):
for i in xrange(max_threads):
t = threading.Thread(target=run)
t.start()
t.join()
def run():
connection = pika.BlockingConnection(pika.URLParameters(rabbit_url))
channel = connection.channel()
channel.basic_consume(callback,
queue='docketq',
no_ack=True)
channel.start_consuming()
def callback(ch, method, properties, body):
do_work(body)
def do_work(body):
print body
t.join()
等待线程完成。在循环的第一次迭代中start()
您启动第一个线程,然后等待它完成,但它永远不会完成,因为channel.start_consuming()
是一个等待传入消息的无限循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)