【发布时间】:2017-04-11 17:59:57
【问题描述】:
通常当人们谈论“异步”或“使 Flask 异步”时,他们指的是使用一些异步工具(GEvent、asyncio 等)对 Flask 进行猴子修补的情况
考虑到 Flask 足够小,可以“动态创建”,我认为这个模型可能会起作用:
传入的 HTTP 请求 -> HTTP 服务器(例如 nginx/apache) -> HTTP-request-queue -> Flask 实例(处理每个请求)
无需修改您的任何代码,执行任何猴子补丁,您基本上就可以隔离处理您的阻塞代码。经过一番挖掘,我相信可以做到:
http://flask.pocoo.org/docs/0.11/deploying/wsgi-standalone/#twisted-web][1]
我的问题是:
-
使用这种方法是否比编写事件驱动代码效率低? (例如,使用 GEvent 或 Tornado)
-
[1] 处理请求的模型是什么? (是不是和我上面描述的一样)
-
可以存在竞争条件吗?例如。
对首先处理最后一个 HTTP 请求 (request-2) 的数据库进行 2 次调用(由于异步请求处理),导致第一个 HTTP 请求 (request-1) 发生冲突
【问题讨论】:
标签: python python-3.x flask twisted