Python 多线程接收多个rabbitmq消息
时间: 2023-07-03 08:05:10 浏览: 301
可以使用 Python 的 `pika` 库来实现多线程接收多个 RabbitMQ 消息。下面是一个简单的示例代码:
```python
import pika
import threading
def receive_messages(queue_name):
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue=queue_name)
def callback(ch, method, properties, body):
print(f"Received {body} from {queue_name}")
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
channel.start_consuming()
if __name__ == "__main__":
queue_names = ["queue1", "queue2", "queue3"]
threads = []
for queue_name in queue_names:
t = threading.Thread(target=receive_messages, args=(queue_name,))
t.start()
threads.append(t)
for t in threads:
t.join()
```
在这个示例代码中,我们定义了一个 `receive_messages` 函数来接收一个指定队列的消息。我们创建了多个线程来同时接收多个队列的消息。每个线程都调用 `receive_messages` 函数,并传入不同的队列名称作为参数。最后,我们使用 `join` 方法来等待所有线程结束。在 `callback` 回调函数中,我们可以处理接收到的消息。
阅读全文