django mq发送 和 接受
时间: 2024-03-19 10:21:22 浏览: 12
在 Django 中使用消息队列(MQ)可以提高系统的可伸缩性和可靠性,常见的消息队列系统有 RabbitMQ、Kafka 等。
下面简单介绍一下如何在 Django 中使用 RabbitMQ 进行消息发送和接收。
首先,需要安装 pika 包,可以使用 pip 进行安装:
```
pip install pika
```
发送消息代码:
```python
import pika
# 连接 RabbitMQ 服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 创建队列
channel.queue_declare(queue='hello')
# 发送消息
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
# 关闭连接
connection.close()
```
接收消息代码:
```python
import pika
# 连接 RabbitMQ 服务器
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)
# 订阅消息
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
```
以上代码中,`hello` 是队列的名称,发送方和接收方都需要使用相同的队列名称。在发送消息时,需要指定 `routing_key`,这里与队列名称相同。接收方通过 `basic_consume` 方法来订阅消息,并指定回调函数 `callback` 来处理消息。
以上是使用 RabbitMQ 进行消息发送和接收的简单示例,具体使用方式可以根据实际需求进行调整。