Pandas 每个用户有一个房间吗?贵吗?

Pandas 每个用户有一个房间吗?贵吗?,pandas,flask,socket.io,gevent-socketio,flask-socketio,Pandas,Flask,Socket.io,Gevent Socketio,Flask Socketio,我有一个运行pandas的flask webapp,可以在后端进行一些数据分析 现在,我采用了一种天真的方法,使用AJAX让用户将查询发送回服务器并与数据交互。但事实证明,每次请求和每次我需要将数据重新加载到pandas/memory中时都会有大量开销,这是非常重复的 我认为socketio在这里会很有用-我会打开一个套接字连接,这样一旦文件加载到pandas中,用户就可以通过套接字以更少的开销更快速地交互和查询数据 所以我现在的问题是: 我是否应该为每个用户开放一个房间,因为用户不需要彼此交

我有一个运行pandas的flask webapp,可以在后端进行一些数据分析

现在,我采用了一种天真的方法,使用AJAX让用户将查询发送回服务器并与数据交互。但事实证明,每次请求和每次我需要将数据重新加载到pandas/memory中时都会有大量开销,这是非常重复的

我认为socketio在这里会很有用-我会打开一个套接字连接,这样一旦文件加载到pandas中,用户就可以通过套接字以更少的开销更快速地交互和查询数据

所以我现在的问题是:

  • 我是否应该为每个用户开放一个房间,因为用户不需要彼此交互
  • 这是否可以扩展-为每个用户打开一个房间
  • 名称空间在这里适合什么?我是否将名称空间分配给网站的不同部分,并在每个名称空间下为每个用户进一步打开房间
  • 或者我应该生一个猴子补丁线程?每用户绿色

为每个用户打开一个房间是一个有效的解决方案,我通常建议将其作为一种方式,以便在服务器推送的消息中轻松地向单个用户发送地址

这些文件室保存在内存中的Python数据结构中,因此它们的成本很高,因为它们只使用了一点点内存。我没有测量每个用户的数量,但它可能只是房间名称上方的几个字节

名称空间用于将多个不同的连接多路复用到一个物理通道中。如果您只有一个连接,那么对所有内容都使用相同的名称空间。例如,如果页面中有两个客户端应用程序(如angular应用程序),则应该使用多个名称空间,每个应用程序都有自己的事件处理程序集。除此之外,没有理由使用多个命名空间


希望这有帮助。

假设1个用户=1个websocket连接,并且您实际上使用的是socket.io,那么您就不需要在每次新用户连接时手动实例化一个新房间;socket.io会自动为每个连接创建唯一的空间。