Использование очереди сообщений rabbitmq из нескольких потоков (Python Kombu) - PullRequest
7 голосов
/ 28 июня 2011

У меня есть один обмен RabbitMQ с одной очередью.Я хочу создать демон, который запускает несколько потоков и работает через эту очередь как можно быстрее.

«Работа» предполагает взаимодействие с внешними службами, поэтому в каждом потребителе будет происходить значительное количество блокировок.Поэтому я хочу, чтобы все потоки работали с сообщениями из одной и той же очереди.

Я могу добиться этого, используя очередь в моем основном потоке, а затем обрабатывая входящую работу в пуле других потоков., но есть ли способ запустить несколько потребителей, каждый в своем собственном поточном контексте?

1 Ответ

3 голосов
/ 28 июня 2011

Взгляните на сельдерей - он предназначен для постановки в очередь и обработки задач от брокера AMPQ (но также работает с другими бэкэндами очередей).Он обрабатывает многопроцессорный или многопоточный параллелизм и позволяет очень легко создавать и использовать задачи.

...