python-RabbitMQ
阿新 • • 發佈:2017-06-09
span ins top [0 consumer nbsp out message pro
簡單隊列方式
#!/usr/bin/env python # -*- coding:utf-8 -*- import Queue import threading #建立隊列長度為10 message = Queue.Queue(10) #生產者 def producer(i): #往隊列中扔消息 message.put(i) print(‘queue_size=%s‘%message.queue) #消費者 def consumer(i): #取隊列消息,先進先出 msg = message.get() #生產線程for i in range(10): t = threading.Thread(target=producer, args=(i,)) t.start() #消費線程 for i in range(5): t = threading.Thread(target=consumer, args=(i,)) t.start() #打印剩余的數據 print(‘queue_size=%s‘%message.queue)
結果:
生產隊列增長過程過程
producer_queue=deque([0])
producer_queue=deque([0, 1])
producer_queue=deque([0, 1, 2])
producer_queue=deque([0, 1, 2, 3])
producer_queue=deque([0, 1, 2, 3, 4])
producer_queue=deque([0, 1, 2, 3, 4, 5])
producer_queue=deque([0, 1, 2, 3, 4, 5, 6])
producer_queue=deque([0, 1, 2, 3, 4, 5, 6, 7])
producer_queue=deque([0, 1, 2, 3, 4, 5, 6, 7, 8])
producer_queue=deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
剩余數據
queue=deque([4, 5, 6, 7, 8, 9])
以下是RabbitMQ 主要模式
1簡單隊列
2exchange{
1、fanout
2、direct
3 、topic
}
安裝組件
pip install pika
對於RabbitMQ來說,生產和消費不再針對內存裏的一個Queue對象,而是某臺服務器上的RabbitMQ Server實現的消息隊列。
python-RabbitMQ