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网站制作学习