python rabbitmq官方文档demo

2024-10-09 08:05:57 浏览数 (1)

1.生产者

代码语言:javascript复制
#!/usr/bin/env python
import pika
import json

# https://www.rabbitmq.com/tutorials/tutorial-one-python.html 官方文档

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')

message=json.dumps({'OrderId':"1000"})
channel.basic_publish(exchange='',
                      routing_key='hello',
                      body=message)
#print(" [x] Sent 'Hello World! 2020'")
print(message)
connection.close()

2.消费者

代码语言:javascript复制
#!/usr/bin/env python
import pika, sys, os

# https://www.rabbitmq.com/tutorials/tutorial-one-python.html 官方文档

def main():
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='hello')

    def callback(ch, method, properties, body):
        #print(" [x] Received [%r]" %body)
        #print(body)    # b'{"OrderId": "1000"}'
        print(body.decode())  ## 关键:需要decode,否则会出现上面的b' '符号

    channel.basic_consume(queue='hello',
                          auto_ack=True,
                          on_message_callback=callback)

    print(' [*] Waiting for messages. To exit press CTRL C')
    channel.start_consuming()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('Interrupted')
        try:
            sys.exit(0)
        except SystemExit:
            os._exit(0)

0 人点赞