消息的并发处理(Python)

时间:2016-12-05 01:35:23

标签: python multithreading concurrency

我有以下情况:

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

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

这是一个方案: enter image description here

让我们考虑一秒钟内它可以是30-50条消息,procces方法可以在1到10秒内完成。

问题是:我可以用什么库或框架来实现这种架构?

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

1 个答案:

答案 0 :(得分:0)

您的留言率非常低。所以你可以自由地使用"标准" RabbitMQ / RedisCelery(" Celery Project")和asyncio等工具。

RabbitMQ

Redis / Celery是实施队列和管理任务和流程的绝佳工具。

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