圈子里有朋友问我在python下如何实现类gunicorn多进程管理. Master Worker工作模型非常适合多任务环境,可以规范后端服务,动态的改变worker数,不怕内核的oom等.
在新公司还没怎么分享过python,因为公司的python高手太多 ! 不仅有看过python源码的ybb,有看过redis源码,反复提交pullrequest都被拒的伟哥,还有从django古老版本就开始折腾的大哥. 这次关于多进程管理的主题也不怎么高端,只为普及知识.
文章时有更新,怕就文章误导大家,标注下原文地址,http://xiaorui.cc/?p=3133
PPT里的主要纲要:
- supervisor vs gunicorn vs uwsgi
- linux信号, unicorn的信号体系
-
孤儿进程 vs 僵尸进程的实现
-
nohup的源码实现,脱离终端控制的几种方法?
-
daemon的实现,为什么需要两次fork ?
-
prefork是怎么一回事
-
打造一个较完善的多进程管理轮子
下面是具体的功能点:
- 用配置文件控制
- uid权限
- 规范进程名
- daemon守候进程
- 调整进程Add、Reduce
- 调优配置 : 最大处理任务,是否线程、协程, timeout控制
- 捕获各种信号,解决僵尸进程
- fcntl lock
- 传参获取服务状态,重启服务,开启,停止
已经把ppt扔到slideshare里,如果连接被墙,可以直接下载高清版本.
pdf下载地址:
http://xiaorui.cc/processpdf.pdf
在线翻墙看的ppt:
美妙的多进程管理 from rfyiamcool
视频?更新了么?
棒棒的!
棒棒的!
有样例代码么
keynote?
我记得你开源过类似的实现模块吧
有点意思!
光看ppt就知道不错,峰云兄来我们心分享吧!