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