实时进纸时的龙卷风阻塞

2024-06-16 09:57:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的tornado应用程序中,我将让用户访问我的数据库并请求数据。当我的应用程序从这些数据进行实时分析时,每个客户机都将连接到数据库很长一段时间。这样会使应用程序阻塞吗?在

那么,如果我使用AsyncMongo,这会解决这个问题并使应用程序不阻塞吗?我希望同时使用该应用程序的用户?否则,每个客户端在使用应用程序时可能会阻塞数分钟。在

将客户端连接到服务器中的mongodb的处理程序是一个websocket。在

我会用这个吗@web.异步一代装修师也是?还是使用多重处理更好?在

我对这一点很陌生,所以在这两方面都没有经验,但会寻找最容易获得和实施?在

如果能看到一些示例/教程代码,那就太好了。在

谢谢


Tags: 数据用户服务器web数据库应用程序处理程序客户端
1条回答
网友
1楼 · 发布于 2024-06-16 09:57:29

>;是否阻止应用程序?

使应用程序阻塞的大致原因是您使用的框架:Django是阻塞的。龙卷风是非阻塞性的。在

>;异步mongo

这是一个异步数据库驱动程序,但它是旧的,并没有更新一段时间。使用它可以使您的数据库调用异步。但是最好使用同步PyMongo,因为它是由10gen人员维护的,并确保您的查询快速返回。有一个新的python实验性异步库Motor

>;@web.asynchronousgen decorator也是

gen是一种使异步查询更易于阅读的方法。这与多重处理无关

架构与阻塞

如果您继续读取数据并将其反馈给客户端,那么是的,它将被阻塞。或者

  1. 不要使用龙卷风
  2. 更改您的架构,使连接不保持打开状态
  3. 使用AsyncMongo或Motor之类的异步驱动程序

相关问题 更多 >