使用多个线程消费RabbitMQ消息队列(Python Kombu)

7 投票
1 回答
4687 浏览
提问于 2025-04-16 20:26

我有一个RabbitMQ的交换机和一个队列。我想创建一个守护进程,让它运行多个线程,尽可能快地处理这个队列里的消息。

这里的“工作”是指与外部服务进行通信,所以每个消费者在处理消息时会有不少时间是被阻塞的。因此,我希望有多个线程同时处理来自同一个队列的消息。

我可以通过在主线程中消费队列,然后把接收到的工作分配给其他线程来实现这个目标,但有没有办法让多个消费者在各自的线程环境中同时运行呢?

1 个回答

3

看看celery吧——它是用来排队和处理任务的,主要是从一个叫AMPQ的消息中间件获取任务(不过也可以和其他排队系统一起使用)。它可以处理多进程或多线程的并发,让你轻松创建和执行任务。

撰写回答