0

在我的龙卷风应用程序中,我将让用户访问我的数据库并请求数据。由于我的应用程序正在对这些数据进行实时分析,因此每个客户端都将在很长一段时间内连接到数据库。因此这会使应用程序阻塞?

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

将客户端连接到服务器中的 mongodb 的 Handler 是 websocket。

我也会使用@web.asynchronous gen 装饰器吗?还是使用多处理更好?

我对此很陌生,所以两者都没有经验,但是会寻找最容易掌握和实施的方法吗?

很高兴看到一些示例/教程代码。

谢谢

4

1 回答 1

2

>使应用程序阻塞?

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

> AsyncMongo

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

>@web.asynchronous gen 装饰器

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

>架构与阻塞

如果您继续阅读并将数据反馈给客户端,那么是的,它会阻塞。任何一个

  1. 不要使用龙卷风
  2. 更改您的架构,使连接不会保持打开状态
  3. 使用异步驱动程序,如 AsyncMongo 或 Motor
于 2012-11-15T12:58:19.203 回答