消息的并发处理(Python)

消息的并发处理(Python),python,multithreading,concurrency,Python,Multithreading,Concurrency,我有以下情况: 有一个线程管理来自API的长轮询HTTP连接(不间断)。当新消息到达时,必须在特殊的process()方法中对其进行处理 我只是想以一种并发处理传入消息的方式进行设计,但还有另一个要点:在每次处理结束时,应将答案传递给传出队列,该队列在一个单独的线程中组织。从那里,答案将通过HTTP发送 以下是一个方案: 让我们考虑一下,它可以是30-50个消息,一秒钟,PROCESS方法将从1到10秒。 问题是:我可以使用什么库或框架来实现这个体系结构 据我所研究,Python Tornad

我有以下情况:

有一个线程管理来自API的长轮询HTTP连接(不间断)。当新消息到达时,必须在特殊的
process()
方法中对其进行处理

我只是想以一种并发处理传入消息的方式进行设计,但还有另一个要点:在每次处理结束时,应将答案传递给传出队列,该队列在一个单独的线程中组织。从那里,答案将通过HTTP发送

以下是一个方案:

让我们考虑一下,它可以是30-50个消息,一秒钟,PROCESS方法将从1到10秒。

问题是:我可以使用什么库或框架来实现这个体系结构


据我所研究,Python Tornado有很好的基准测试,但在这里我不需要web框架,只需要一个可以同时运行消息处理器的工具。

您的消息速率非常低。因此,您可以自由使用“标准”工具,如
RabbitMQ
/
Redis
Celery
(“芹菜项目”)和
asyncio

RabbitMQ
/
Redis
芹菜
——是实现队列和管理任务和流程的绝佳工具


Asyncio
比Tornado快,但这对您的任务并不重要。更重要的是,asyncio为您提供了现代
async/await
corroutine技术的所有好处。

您的消息速率非常低。因此,您可以自由使用“标准”工具,如
RabbitMQ
/
Redis
Celery
(“芹菜项目”)和
asyncio

RabbitMQ
/
Redis
芹菜
——是实现队列和管理任务和流程的绝佳工具

Asyncio
比Tornado快,但这对您的任务并不重要。更重要的是,asyncio为您提供了现代
async/await
corroutine技术的所有好处