我的第一個rabbitMQ程序-hello_world

首先確定rabbitMQ已經安裝完成,也就是在安裝目錄下運行rabbitMQ-server能成功

之後進行如下兩個步驟:

首先創建一個hello_world_send.py

  1.   
  2. import os  
  3. import pika  
  4.   
  5. conn = None  
  6.   
  7. try:  
  8.     # 獲取連接  
  9.     conn = pika.BlockingConnection(pika.ConnectionParameters('localhost'))  
  10.     # 獲取通道  
  11.     channel = conn.channel()  
  12.   
  13.     # 在發送隊列前,需要確定隊列是否存在,如果不存在RabbitMQ將會丟棄,先創建隊列  
  14.     channel.queue_declare('hello')  
  15.   
  16.     # 在RabbitMQ中發送消息,不是直接發送隊列,而是發送交換機(exchange),此處不多做研究,後面系列逐漸深入  
  17.     ret = channel.basic_publish(exchange='',  
  18.                                 routing_key='hello',  
  19.                                 body="Hello, World!")  
  20.     print " [x] Sent 'Hello World!'"  
  21.     print ret  
  22. except Exception, e:  
  23.     raise e  
  24. finally:  
  25.     if conn:  
  26.         conn.close()

然後創建一個hello_world_recv.py

  1.  
  2. import os  
  3. import pika  
  4.   
  5. conn = None  
  6.   
  7.   
  8. def callback(ch, method, properties, body):  
  9.     """ 
  10.         out body 
  11.     """  
  12.     print " [x] Recived ch {0}".format(ch)  
  13.   
  14.     print " [x] Recived method {0}".format(method)  
  15.   
  16.     print " [x] Recived properties {0}".format(properties)  
  17.   
  18.     print " [x] Recived %r" % (body, )  
  19.   
  20. try:  
  21.     # get connection  
  22.     conn = pika.BlockingConnection(pika.ConnectionParameters(  
  23.         'localhost')  
  24.     )  
  25.   
  26.     # get channel  
  27.     channel = conn.channel()  
  28.   
  29.     # declare queue, 重複聲明不會報錯,但是沒有隊列的話直接取用會報錯  
  30.     channel.queue_declare('hello')  
  31.   
  32.     # get message  
  33.     channel.basic_consume(callback, queue='hello', no_ack=True)  
  34.   
  35.     print ' [*] Waiting for messages. To exit press CTRL+C'  
  36.     channel.start_consuming()  
  37. except Exception, e:  
  38.     raise e  
  39. finally:  
  40.     if conn:  
  41.         conn.close() 

現在:

1:在rabbitMQ安裝目錄的sbin下運行rabbitmq-server

2:在python文件目錄下運行:python hello_world_recv.py

3:在python文件目錄下運行:python hello_world_send.py

成功後可以看到

  1. $ python send_helloworld.py   
  2.  [x] Sent 'Hello World!'  
  3. True 
  1. $ python recv_helloworld.py   
  2.  [*] Waiting for messages. To exit press CTRL+C  
  3.  [x] Recived ch <pika.adapters.blocking_connection.BlockingChannel object at 0x7f61ecc6fa90>  
  4.  [x] Recived method <Basic.Deliver(['consumer_tag=ctag1.6c2c709930904468b40d0e1a758f7aca', 'delivery_tag=1', 'exchange=', 'redelivered=False', 'routing_key=hello'])>  
  5.  [x] Recived properties <BasicProperties>  
  6.  [x] Recived 'Hello, World!' 

運行程序啓動後,一直在等待獲取消息,可以通過Ctrl-C來中止。Hello World基本就結束了,基本知道RabbitMQ基本的使用方法,後續將會進一步對RabbitMQ的使用場景進行解析。

下面給出一個參考網址:

https://blog.csdn.net/fgf00/article/details/52872730

發佈了16 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章