首页 > 其他分享 > flask + gevent + multiprocess + wsgi实现高并发接口

flask + gevent + multiprocess + wsgi实现高并发接口

时间:2023-09-01 14:23:48浏览次数:68  
标签:__ multiprocess flask 0.0 app wsgi Flask gevent

Flask + 多进程 + 协程了。 8核虚拟机最高QPS高达1W5。

使用的时候务必注意一下 “”“进程“”“ 安全就行了。

参考代码如下,Flask gevent 多进程WSGI(非gunicorn)

# coding: utf-8
# code by https://cpp.la, 2020-04-20
# flask + gevent + multiprocess + wsgi

from flask import Flask, request
from multiprocessing import cpu_count, Process
from gevent import monkey
from gevent.pywsgi import WSGIServer

monkey.patch_all()
app = Flask(__name__)


@app.route("/api", methods=['GET', 'POST'])
def api():
    args = request.json
    # print(args)
    return args


def run(MULTI_PROCESS):
    if MULTI_PROCESS == False:
        WSGIServer(('0.0.0.0', 8080), app).serve_forever()
    else:
        mulserver = WSGIServer(('0.0.0.0', 8080), app)
        mulserver.start()

        def server_forever():
            mulserver.start_accepting()
            mulserver._stop_event.wait()

        for i in range(cpu_count()):
            p = Process(target=server_forever)
            p.start()


if __name__ == "__main__":
    # 单进程 + 协程
    # run(False)
    # 多进程 + 协程
    run(True)

标签:__,multiprocess,flask,0.0,app,wsgi,Flask,gevent
From: https://www.cnblogs.com/lazysang/p/17671762.html

相关文章

  • flask之cbv源码分析,模板,请求与响应,session和源码分析,闪现,请求扩展
    目录1cbv分析1.1源码分析2模板2.1py2.2html3请求与响应4session及源码分析4.1session的使用4.2源码分析4.3session执行原理5闪现6请求扩展1cbv分析#基于类的视图,写法fromflaskimportFlask,requestfromflask.viewsimportView,MethodViewapp=Flask(__......
  • flask入门
    目录1Flask和pythonweb框架介绍1.1flask介绍2flask快速使用3登录,显示用户信息小案例3.1login.html3.2home.html3.3detail.html3.4py文件4配置文件方式5路由系统5.1路由本质5.2路由参数add_url_rule5.3转换器1Flask和pythonweb框架介绍#pythonweb框架,本质都一......
  • Python+Flask设置接口开机自启动
    Windows系统适用创建一个批处理文件(例如 start_flask_api.bat),内容如下:@echooffcd/dC:\path\to\your\flask\app//你要启动程序的路径pythonapp.py//你要启动的程序将批处理文件添加到Windows的启动项中:按下Win+R键打开"运行"对话框,输入 shell:startup 并按回车......
  • Python+Flask接口实现简单的ToKen功能
    话不多说,上代码fromflaskimportrequest,jsonifyfromfunctoolsimportwrapsclassTokenRequired:@classmethoddeftoken_required(cls,f):@wraps(f)defdecorated_function(*args,**kwargs):#获取请求头部中的key字段......
  • ModuleNotFoundError: No module named 'flask._compat’
    原因:flask版本过高,flask里面的._compat.py文件没有;解决方案1:解决:降低flask版本,1.1.2即可pipinstallflask==1.1.2 解决方案2:更改flask_script文件,Ctrl+左键 进入到flask_script的 __init__.py 源码文件中,将 fromflask._compatimporttext_type 语句改成 fromf......
  • 第一个Flask application
    安装flaskFlask是一个Web框架,使用它首先需要安装pip3installflask代码如下fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'HelloWorld!'if__name__=='__main__':app.run()代码解析1、导入类......
  • 【Flask框架知识点总结】
    【一】Flask框架之初识Flask框架引入Flask框架简单使用简单的Flask框架登陆案例wsgirefwerkzeug【二】Flask框架之配置文件Flask框架的配置文件配置方式【三】Flask框架之路由系统路由系统介绍转换器【四】Flask框架之CBVCBV使用CBV源码简析【五】Flask框......
  • 【12.0】Flask框架之flask-script
    【一】Django中的命令【1】引入django中,有命令pythonmanage.pyrunserver:这个命令用于启动Django开发服务器,让我们能够在本地运行我们的应用程序。它会默认在本地的8000端口上启动服务器,我们可以在浏览器中访问http://localhost:8000来查看应用程序。pythonmanage.......
  • 【11.0】Flask框架之信号
    【一】引入Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为【二】安装【1】安装pip3installblinker【2】内置信号request_started=_signals.signal('request-started')#请求到来前执行request_finished=_......
  • 【13.0】sqlalchemy 集成到Flask框架
    【在Flask中集成SQLAlchemy】在Flask中集成SQLAlchemy可以通过使用第三方扩展包flask-sqlalchemy来实现,以下是详细的步骤和说明:首先,需要导入SQLAlchemy类以及flask_sqlalchemy模块:fromflask_sqlalchemyimportSQLAlchemy实例化SQLAlchemy对象:db=SQLAlchemy()这个......