当运行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的请求流程相关推荐

  1. 【Gunicorn】gunicorn + flask 请求流程 及 高并发处理介绍

    1.gunicorn + flask 处理高并发请求介绍 一,独角兽Gunicorn 服务器作为wsgi app的容器, 采用 pre-fork 模型中有一个管理进程以及几个的工作进程.master ...

  2. gunicorn + Flask架构中使用多进程全局锁

    有之前的认识WSGI和WSGI的前世今世之后,现在就可以介绍如何在gunicorn + Flask架构模式下,在Flask处理线程中使用全局锁. 说到锁在Python中也有很多锁,最常见用的就是多进程 ...

  3. 4G LTE/EPC UE 的业务请求流程

    目录 文章目录 目录 UE 发起业务请求(Service Request)流程 UE 侧发起的业务请求流程 网络侧发起的业务请求流程 UE 发起业务请求(Service Request)流程 作用:附 ...

  4. zookeeper源码分析之五服务端(集群leader)处理请求流程

    leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...

  5. centos7 ifconfig命令找不到_centos7+mysql+gunicorn+flask项目部署

    前言 出于学习和实践的目的,近期自己写了一个小项目关于flask的API项目,涉及到服务器的上线部署问题,这里就做一个详细的记录和分享吧~欢迎一起交流学习指正~ 正文 一.centos7安装pytho ...

  6. springMVC请求流程详解

    SpringMVC框架是一个基于请求驱动的Web框架,并且使用了'前端控制器'模型来进行设计, 再根据'请求映射规则'分发给相应的页面控制器进行处理.核心流程: 第一步:发起请求到前端控制器(Disp ...

  7. Okhttp3-网络请求流程解析

    前言 已经大火2年的Retrofit,必然会提到另外两个库,OKhttp3和Rxjava,尤其前者,作为Retrofit网络请求的底层库,我们有必要了解OKhttp3的网络请求是如何运作的,就会理解为 ...

  8. internetreadfile读取数据长度为0_Go发起HTTP2.0请求流程分析(后篇)——标头压缩

    阅读建议 这是HTTP2.0系列的最后一篇,笔者推荐阅读顺序如下: Go中的HTTP请求之--HTTP1.1请求流程分析 Go发起HTTP2.0请求流程分析(前篇) Go发起HTTP2.0请求流程分析 ...

  9. CoAP学习笔记——服务器端繁忙时的处理请求流程

    CoAP学习笔记--服务器端繁忙时的处理请求流程 CoAP是一个简单的请求响应机制,对于一个给定的请求便有一个相应的响应. 很多时候,如果服务器不能立即响应一个CON请求,服务器只能返回一个空应答,这 ...

最新文章

  1. Linux从程序到进程
  2. 人类是怎么从猩猩身上惹来艾滋病的?人与兽的关系很单纯!
  3. 软件测试工程师面试英语
  4. 细述:nginx http内核模块提供的变量和解释
  5. 通俗理解Java中的Lambda表达式
  6. Jquery的一些方法
  7. awk 匹配_20分钟降服awk
  8. mysql不带加密模式jar包_使用Xjar对jar文件进行加密,防止反编译
  9. 淘宝双十一自动做任务方案
  10. OpenCV-python 自制图片画框脚本
  11. 计算机毕业设计Java优乐帮育儿系统(系统+程序+mysql数据库+Lw文档)
  12. 工测中坐标方位角的计算c语言,工程测量中坐标方位角是怎么进行推算的?
  13. 知识点:matplotlib绘图的线条设置以及颜色设置
  14. 2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨
  15. 失眠 我们该怎么办?
  16. Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
  17. 07 Linux操作系统相关知识
  18. ROS中在gazebo中模拟GPS数据
  19. 全国行政区划编码及面积查询
  20. VR paper 投稿总结

热门文章

  1. 从微软官网下载原版Windows10
  2. MSP432蓝牙遥控小车
  3. 用source函数代替繁冗的R语言打包过程
  4. oracle子查询练习题与答案解析 笔记 小白练习!(内有福利)
  5. ViewFlipper和ViewPager的区别
  6. 在 Selenium 中使用 Lambdatest 进行跨浏览器测试
  7. 修改idea运行内存大小
  8. Access:collating sort order SortOrder[2052(0)]
  9. 圆周率为什么会等于4?
  10. nrm 切换不同的源工具