我有网络服务器监听客户端,当有人点击处理程序服务器时,向RabbitMQ发送RPC消息并在保持连接的同时等待响应。当来自RMQ的响应时,服务器将其作为对请求的响应传递给客户端。
Tornado文档中的所有异步示例都可以使用自己的http.fetch_async()或类似的方法,我知道我必须异步等待/读取RMQ ......但是如何?更糟糕的是 - 有时我必须在一个时刻发送几条消息(我创建线程池,每个线程发送一条消息)。
现在我无法重建架构以摆脱等待从RMQ发送答案,因此我阻止了网络服务器。然而,我们没有很多请求和RMQ响应足够快,但有时它可以使服务器等待一分钟。
所以现在我们只使用Gunicorn和很多工作人员和大型服务器,但我觉得它应该是一个更好的解决方案,并研究不同的选择。
Python 3.4,所以我们不能使用pika RMQ适配器并使用Celery的py-amqp。
答案 0 :(得分:0)
将nginx与嵌入式perl一起使用..它就像超人一样......我们正在将它用于我们的分析工具。