python 通過stomp操作ActiveMQ


最近用到了這個,記錄一下。

python通過stomp協議與ActiveMQ通信。

首先要確認下ActiveMQ是否開啟了stomp服務(默認是開啟的):

端口號默認為:61613

發送與接收消息:

 1 class MyListener(object):
 2 
 3     def __init__(self, conn):
 4         self.conn = conn
 5 
 6     def on_error(self, headers, message):
 7         print '$$$ received an error: %s from MQ' % message
 8 
 9     def on_message(self, headers, message):
10         print '$$$ received a message: %s from MQ' % message
11         # print headers
12         self.conn.ack(id=headers['message-id'], subscription=headers['subscription']) # 消費消息記錄
13 
14         prepare_folder()
15         self.write_record(config_file, message)
16 
17 def messagequeue_invoker():
18     dest = '/queue/TestPysoider'
19     #logging.basicConfig()
20 
21     conn = stomp.Connection([('127.0.0.1', 61613)])
22     conn.set_listener('', MyListener(conn)) # 注冊消息監聽者
23     conn.start()
24     conn.connect(username='admin', passcode='admin', wait=True, headers={'tcpNoDelay': 'true'})
25     conn.send(destination=dest, body='I am a test message.', headers={'type': 'textMessage'}) # 發送消息
26     print "$$$ send one message"
27 
28     conn.subscribe(destination=dest, id=123, ack='client') # 開始監聽接收消息
29     print 'start to receive message......'
30     while True:
31         try:
32             time.sleep(1)
33         except:
34             break

由於python各種庫的版本變化較快,調用參數與方式可能有變化。之前在網上找資料就發現好多有不能執行。

可以通過查看源代碼以及注釋的方法校准方法調用方式(參數列表);

通過打印傳入參數查看監聽方法的使用以及消費消息記錄的調用方式。

技巧很弱,僅作總結。

歡迎大神指教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM