Flask在Windows环境下的部署

本文探讨了在Windows环境下Flask项目的部署策略,指出Flask内置服务器性能有限,推荐使用如Nginx、Gunicorn等方案。通过测试,发现Flask多线程无法实现异步,而tornado+Flask也无法解决同步问题。在高并发测试中,Flask直接部署在500并发下表现不佳,但结合Nginx和多个后台服务器能显著提升并发处理能力。最终选择Nginx+4个Flask后台服务器的配置,适用于并发需求较低的项目,对于高并发项目,建议迁移到Linux环境并采用官方推荐的部署方式。

背景

由于目前在用的Flask项目涉及到一部分依赖Windows的处理,还无法迁移到linux平台,那么在windows环境下,要怎么部署呢?

思路

根据Flask官网介绍,由于Flask内置的服务器性能不佳,推荐的主要的部署方式有如下几种:

上述这些部署方式,仅Tornado是支持在windows情况下部署的,配合上Nginx可以达到比较好的效果。可已参考Nginx与tornado框架的并发评测

但是在实际使用中发现,tornado 的稳定性虽然很高,但是在tornado上部署Flask,并不会有异步的效果。实际上还是单进程阻塞运行的,即使在Flask中配置了threaded = True也无法实现多线程使用。

Flask多线程情况

配置启用多线程:

# manage.py
from flask_script import Server

server = Server(host="0.0.0.0", threaded=True)

Flask中配置两条测试路由

import time
@main.route('/test')
def maintest():
    return 'hello world'
    
@main.route('/sleep')
def mainsleep():
    time.sleep(60)
    return 'wake up'

先用浏览器访问\sleep

图片描述

随即立刻访问\test:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值