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

7
我有一个RabbitMQ交换机和一个队列。我希望创建一个守护程序,运行多个线程,尽可能快地处理这个队列。
“工作”涉及与外部服务通信,因此每个消费者内部都会有相当数量的阻塞。因此,我希望有多个线程处理来自同一队列的消息。
我可以通过在主线程上消耗队列,然后将传入的工作分配给其他线程池来实现这一点,但是否有一种方法可以启动多个消费者,每个消费者在其自己的线程上下文中?
1个回答

3

看一下celery - 它被设计用来从一个AMPQ代理中排队和处理任务(但也可以与其他排队后端一起使用)。它处理多进程或多线程并发,并使创建和消费任务变得非常容易。


1
这个限制只适用于Python,这可能不是理想的选择,因为RabbitMQ是语言无关的。是否有一个语言无关的现成包可以用于任务分配? - liang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接