4장. 예
이 장에서는 예제 프로그램을 통해 AMQ Python을 사용하는 방법을 보여줍니다.
자세한 내용은 AMQ Python 예제 제품군 및 Cryostat Proton Python 예제 를 참조하십시오.
4.1. 메시지 전송 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
이 클라이언트 프로그램은 < connection-url >을 사용하여 서버에 연결하고, 대상 < address >에 대한 보낸 사람을 생성하고, < message-body >를 포함하는 메시지를 전송하고, 연결을 종료하고 종료합니다.
예: 메시지 전송
from __future__ import print_function
import sys
from proton import Message
from proton.handlers import MessagingHandler
from proton.reactor import Container
class SendHandler(MessagingHandler):
def __init__(self, conn_url, address, message_body):
super(SendHandler, self).__init__()
self.conn_url = conn_url
self.address = address
self.message_body = message_body
def on_start(self, event):
conn = event.container.connect(self.conn_url)
# To connect with a user and password:
# conn = event.container.connect(self.conn_url, user="<user>", password="<password>")
event.container.create_sender(conn, self.address)
def on_link_opened(self, event):
print("SEND: Opened sender for target address '{0}'".format
(event.sender.target.address))
def on_sendable(self, event):
message = Message(self.message_body)
event.sender.send(message)
print("SEND: Sent message '{0}'".format(message.body))
event.sender.close()
event.connection.close()
def main():
try:
conn_url, address, message_body = sys.argv[1:4]
except ValueError:
sys.exit("Usage: send.py <connection-url> <address> <message-body>")
handler = SendHandler(conn_url, address, message_body)
container = Container(handler)
container.run()
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
pass
예제 실행
예제 프로그램을 실행하려면 Python 명령을 사용하여 로컬 파일에 복사하여 호출합니다. 자세한 내용은 3장. 시작하기의 내용을 참조하십시오.
$ python send.py amqp://localhost queue1 hello