flask 运行时阻塞


之前并没有研究过flask在大量不同请求的情况下请求的处理机制,最近发现自己的一个监控系统的Recv-Q 堆积过多,然后看了一下是程序的处理能力的问题。

1、看见服务器Recv-Q较多,消费不及时

[root@iZbp1ftexcphcvhbglvmz8Z ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        12      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      17051/python        

2、索性就测试了一下flask的阻塞情况

@api.route('/')
#@auth.login_required
def index():
    import time
    time.sleep(15)
    return {
        print("hello world")
    }

同时执行了两个请求,上面这个先执行,后面在执行一个不同的请求,就会先等上面这个15秒的执行完了才会执行另一个不同的接口。

3、然后修改主程序

1)增加gevent

2)启动的时候开启多线程 

nohup python manage.py runserver -d -r -h 0.0.0.0 -p 9527 --threaded &

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM