我正在编写一个实用程序,它应该充当RabbitMQ
队列的使用者。它检索消息,使用它们执行某些操作,并将它们提交到另一个系统,如f.e. Riemann
或Statsd
。
目前与RabbitMQ
的通信使用异步SelectConnection
适配器,与输出(Riemann
/ Statsd
)的通信使用python-riemann
/ { {1}}客户端(阻塞)。
我相信通过修改pystatsd
和python-riemann
客户端以使用异步适配器(我必须编写那个),我可以提高此实用程序的整体性能,但我的问题是我不确定如何将其与pika的pystatsd
结合起来。
根据我的理解,我想我可能必须找到一种在pika IOLoop
上添加事件监听器的方法,这应该在IOLoop
或Riemann
响应时触发,因为根据我的说法目前的理解我没有什么好方法可以有两个事件循环,除非我多线程化实用程序并且有一个Statsd
用于连接到线程IOLoop
中的RabbitMQ
而另一个负责线程#1
中的输出(Riemann
/ Statsd
)。
所以我的问题是:做什么是最好的,多线程这个实用程序,每个外部系统都有一个#2
我正在与之交互,或者试图找到一种方法来使用pika {{1}为了一个可能不适合它的目的。