向Pika IOLoop或多线程添加事件侦听器?

2024-04-26 12:55:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个实用程序,它应该充当RabbitMQ队列的使用者。它检索消息,对它们执行某些操作,然后将它们提交给另一个系统,如f.e.Riemann或{}。在

现在与RabbitMQ的通信使用异步SelectConnection适配器,与输出(Riemann/Statsd)的通信使用python-riemann/pystatsd客户机(这是阻塞的)。在

我相信我可以通过修改python-riemannpystatsd客户端来提高这个实用程序的整体性能(我必须编写一个),但我的问题是我不确定如何将其与pika的IOLoop结合起来。在

根据我的理解,我想我可能需要找到一种方法在鼠兔IOLoop上添加事件侦听器,当Riemann或{}响应时,应该触发该事件侦听器,因为根据我目前的理解,没有一种好方法可以让我有两个事件循环,除非我多线程该实用程序,并且有一个IOLoop用于线程#1中的RabbitMQ的连接,另一个负责线程Riemann/Statsd)的输出(Riemann/Statsd)。在

所以我的问题是:最好的做法是:多线程这个工具,并在与之交互的每个外部系统中有一个IOLoop,或者试图找到一种方法也使用pika的IOLoop来达到它可能没有预期的目的。在


Tags: 方法实用程序队列系统rabbitmq事件使用者statsd