网站制作学习网Python→正文:python flask 多进程
字体:

python flask 多进程

Python 2024/5/24 12:33:16  点击:不统计

转载%77%77%77请%2E%66%6F%72%61%73%70%2E%63%6E注明

flask web服务启动web多线程服务,怎么操作,本文逐步介绍如何通过gunicorn 启动flask web 多线程服务。
 
第一步,首先创建一个 flask web 服务,我们建立文件名称为 foraspserver.py ,代码如下:
 
from flask import Flask
app_name = Flask(__name__)
 
 
@app_name.route('/')
def index():
    return "Hello, World!"
 
 
@app_name.route('/run')
def hello():
    import time
    time.sleep(5)
    return "这里是休息5秒后的内容,为了显示进程占用"
 
 
if __name__ == "__main__":
    app_name.debug = True
    app_name.run()

 
第二步,测试单线程运行
直接运行 python foraspserver.py
 
连续两个页面访问 http://127.0.0.1:5000/run 
你会发现第二个页面完成时间是第一个完成后的时间 +5秒。表示进程正在被第一个请求占用,只能第一个完毕后处理第二个。
 
第三步  安装python 多线程  扩展
pip install gunicorn
 
第四部,多线程启动脚本,比如建立 start.sh,内容入下
 
#!/bin/bash
gunicorn --workers 3 --bind 0.0.0.0:5000 foraspserver:app_name >log/run.log 2>&1 &
echo $! >.main.pid.txt
 
上面是启动一个线程 3个线程 绑定IP 和端口 ,将日志打印到log/run.log 并在后台运行
然后吧进程号 写入到  .main.pid.txt
 
 
停止服务脚本  stop.sh 如下 :
#!/bin/bash
pid=$(cat .main.pid.txt)
kill $pid
 
第五步 再次测试 web 服务请求。
当你连续4个请求 http://127.0.0.1:5000/run  ,发现第四个 需要 等待第一个完毕后才能执行。
这时你就可以增加 线程数量了。
 
以上就是 flask 多进程操作了。

原载于:文章来源:www.forasp.cn网站制作学习

·上一篇:module 'collections' has no attribute 'Hashable' >>    ·下一篇:FastApi debug reload模式 >>
推荐文章
最新文章