我的设置是flask-socketio和一个flask-restful with服务器。
安装了Eventlet,因此在生产模式下使用eventlet used服务器。
我知道flask-socketio和eventlet webserver本身都是基于事件循环的。
flask-socketio和eventlet webserver是在同一个eventloop (同一个线程)上运行,还是在两个不同的线程中运行?
发布于 2019-08-24 00:58:07
我认为你混淆了术语。
事件循环是任务调度程序。这是由eventlet提供的,单个事件循环用于整个应用程序,包括Flask和Flask-SocketIO部分。
每次请求到达eventlet web服务器时,它都会为其分配一个新任务。所以基本上每个请求( Flask或Flask-SocketIO、HTTP或WebSocket)都会有自己的任务。随着请求的处理,任务不断地被创建和销毁。
当您使用eventlet时,任务不是线程,它们是greenlet,这就是为什么我在上面避免将它们称为线程,而是使用更通用的“任务”术语。它们的行为在很多方面都像线程,但它们不是。
https://stackoverflow.com/questions/57619141
复制相似问题