1. 程式人生 > >python-RabbitMQ

python-RabbitMQ

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