1. 前言&问题叙述
使用gunicorn和supervsior搭配来管理后台运行程序,启动主程序后,使用postman来测试接口,发现接口请求时间太久,很容易造成响应时间过长而接口报错的接口,报错:gevent.exceptions.BlockingSwitchOutError: Impossible to call blocking function in the event loop callback
2. 问题解决
方法:更换gunicorn异步worker类型,将gevent换成eventlet
本人机器上运行主程序,使用的异步worker类型是gevent
gunicorn -w1 -b 0.0.0.0:8091 run:app --worker-class gevent --timeout 120
此时需要更换为eventlet,使用命令pip install eventlet安装完后,直接更换为
gunicorn -w1 -b 0.0.0.0:8091 run:app --worker-class eventlet --timeout 120
问题解决!
需要注意的是,无论使用gevent还是eventlet,都需要提前安装好greenlet,pip install greenlet
版权声明:本文为qq_38796548原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。