gunicorn flask的请求流程
当运行gunicorn这个命令启动flask的时候
首先回去调用gunicorn/app/wsgiapp中的run方法
回去调用run()方法,这个run方式本质是gunicorn/arbiter中的run()方法
主要就关注其中manage_workers()方法
很明显调用了spawn_workers()方法,这个方式只是遍历了spawn_worker()。因此我们直接看spawn_worker()方法
可以发现 初始化了一个workclass,这个worker是gunicorn/workers/sync。为什么是使用这个因为在gunicorn/config中的worker_class默认使用的SyncWorker
好了接下来我们说一下worker,这些worker本质上都是为了处理一个一个request的
看到respiter = self.wsgi(environ, resp.start_response)这个了吗,这就是gunicorn符合wsgi的内涵。这个吧当前的环境和一个response传进去,当然传出了的也是response。
我们看看这个方法是那里呢?
寻找了一下是在生成worker的时候传入的app中获取的。
那么我们来看一下这个app到底是什么东西,在gunicorn中的Arbiter初始化函数中有一句
这个app本质就是从外部初始化传进来的,寻找这个类常初始化的地方gunicorn/app/base中
感情把自己的实例传进去了,不过在这里也找到了wsgi()方法
这个load()方法是子类gunicorn/app/wsgiapp中实现的
最后看一下load_wsgiapp()
他的意思就是把你在命令中的app实例导入。这里最后提一下在flask中的实现,这个是FLASK类在flask/app.py中
因为这个类实现了__call__方法所以使用实例传入参数以后就来到了flask框架进行request处理。
gunicorn flask的请求流程相关推荐
- 【Gunicorn】gunicorn + flask 请求流程 及 高并发处理介绍
1.gunicorn + flask 处理高并发请求介绍 一,独角兽Gunicorn 服务器作为wsgi app的容器, 采用 pre-fork 模型中有一个管理进程以及几个的工作进程.master ...
- gunicorn + Flask架构中使用多进程全局锁
有之前的认识WSGI和WSGI的前世今世之后,现在就可以介绍如何在gunicorn + Flask架构模式下,在Flask处理线程中使用全局锁. 说到锁在Python中也有很多锁,最常见用的就是多进程 ...
- 4G LTE/EPC UE 的业务请求流程
目录 文章目录 目录 UE 发起业务请求(Service Request)流程 UE 侧发起的业务请求流程 网络侧发起的业务请求流程 UE 发起业务请求(Service Request)流程 作用:附 ...
- zookeeper源码分析之五服务端(集群leader)处理请求流程
leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...
- centos7 ifconfig命令找不到_centos7+mysql+gunicorn+flask项目部署
前言 出于学习和实践的目的,近期自己写了一个小项目关于flask的API项目,涉及到服务器的上线部署问题,这里就做一个详细的记录和分享吧~欢迎一起交流学习指正~ 正文 一.centos7安装pytho ...
- springMVC请求流程详解
SpringMVC框架是一个基于请求驱动的Web框架,并且使用了'前端控制器'模型来进行设计, 再根据'请求映射规则'分发给相应的页面控制器进行处理.核心流程: 第一步:发起请求到前端控制器(Disp ...
- Okhttp3-网络请求流程解析
前言 已经大火2年的Retrofit,必然会提到另外两个库,OKhttp3和Rxjava,尤其前者,作为Retrofit网络请求的底层库,我们有必要了解OKhttp3的网络请求是如何运作的,就会理解为 ...
- internetreadfile读取数据长度为0_Go发起HTTP2.0请求流程分析(后篇)——标头压缩
阅读建议 这是HTTP2.0系列的最后一篇,笔者推荐阅读顺序如下: Go中的HTTP请求之--HTTP1.1请求流程分析 Go发起HTTP2.0请求流程分析(前篇) Go发起HTTP2.0请求流程分析 ...
- CoAP学习笔记——服务器端繁忙时的处理请求流程
CoAP学习笔记--服务器端繁忙时的处理请求流程 CoAP是一个简单的请求响应机制,对于一个给定的请求便有一个相应的响应. 很多时候,如果服务器不能立即响应一个CON请求,服务器只能返回一个空应答,这 ...
最新文章
- Linux从程序到进程
- 人类是怎么从猩猩身上惹来艾滋病的?人与兽的关系很单纯!
- 软件测试工程师面试英语
- 细述:nginx http内核模块提供的变量和解释
- 通俗理解Java中的Lambda表达式
- Jquery的一些方法
- awk 匹配_20分钟降服awk
- mysql不带加密模式jar包_使用Xjar对jar文件进行加密,防止反编译
- 淘宝双十一自动做任务方案
- OpenCV-python 自制图片画框脚本
- 计算机毕业设计Java优乐帮育儿系统(系统+程序+mysql数据库+Lw文档)
- 工测中坐标方位角的计算c语言,工程测量中坐标方位角是怎么进行推算的?
- 知识点:matplotlib绘图的线条设置以及颜色设置
- 2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨
- 失眠 我们该怎么办?
- Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
- 07 Linux操作系统相关知识
- ROS中在gazebo中模拟GPS数据
- 全国行政区划编码及面积查询
- VR paper 投稿总结