使用具有多个线程的rabbitmq消息队列(Python Kombu)

Ste*_*yne 7 python multithreading rabbitmq kombu

我有一个单一队列的RabbitMQ交换.我希望创建一个运行多个线程的守护进程,并尽快通过此队列.

"工作"涉及与外部服务进行通信,因此每个消费者中都会有相当多的阻塞.因此,我希望有多个线程处理来自同一队列的消息.

我可以通过在我的主线程上使用队列来实现这一点,然后将传入的工作转移到其他线程池中,但是有没有办法在每个线程的上下文中启动多个使用者?

Ste*_*eMc 3

看一下celery - 它旨在对来自 AMPQ 代理的任务进行排队和处理(但也可与其他排队后端配合使用)。它处理多进程或多线程并发,并使创建和使用任务变得非常容易。