我有以下情况:
有一个线程可以管理来自API的长轮询HTTP连接(不间断)。当新消息到达时,必须在特殊的process()
方法中处理它。
我只是想以同时处理传入消息的方式设计它,但还有另一个要点:在每次处理结束时,应该将答案传递给派出队列,该队列在一个单独的线程中组织。从那里,答案将通过HTTP发送。
让我们考虑一秒钟内它可以是30-50条消息,procces方法可以在1到10秒内完成。
问题是:我可以用什么库或框架来实现这种架构?
据我所研究,Python Tornado有很好的基准测试,但在这里我不需要一个Web框架,只需一个可以同时运行消息处理器的工具。
答案 0 :(得分:0)
您的留言率非常低。所以你可以自由地使用"标准" RabbitMQ
/ Redis
,Celery
(" Celery Project")和asyncio
等工具。
RabbitMQ
的 Redis
/ Celery
是实施队列和管理任务和流程的绝佳工具。
Asyncio
比Tornado快,但对你的任务来说并不重要。更重要的是,asyncio为您提供了现代async/await
协程技术的所有好处。