Flask-SocketIO with eventlet: Web and Websockets Thread



我的设置是带有烧瓶休息网络服务器的烧瓶插座。

已安装事件,因此在生产模式下,使用事件网络服务器。

我知道flask-socketio和eventlet web服务器本身是基于事件循环的。

flask-socketio 和 eventlet Web 服务器是在同一事件循环(同一线程(上运行还是在两个不同的线程上运行?

我认为你混淆了术语。

事件循环是任务计划程序。这是由eventlet提供的,单个事件循环用于整个应用程序,包括Flask和Flask-SocketIO部分。

每次请求到达 eventlet Web 服务器时,它都会为其分配一个新任务。所以基本上每个请求(无论是Flask还是Flask-SocketIO,HTTP还是WebSocket(都会得到自己的任务。随着请求的处理,任务会不断被创建和销毁。

当你使用eventlet时,任务不是线程,它们是绿色的,这就是为什么我避免在上面称它们为线程,而是使用更通用的"任务"术语。它们在许多方面表现得像线程,但事实并非如此。

最新更新