fastapi 一般是使用 uvicorn 启动的,gunicorn需要对uvicorn包装。
使用supervisor管理进程时,
gunicorn --worker-class="uvicorn.workers.UvicornWorker" main:app --bind 0.0.0.0:8040 --workers 1 --timeout 120 --threads 2
启动时,遇到了,无法连接端口的问题:
[ERROR] Connection in use: ('0.0.0.0', 8040)
问题:
在主程序(main)中使用了
if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8040, access_log=True, reload=False, log_config=defaultLoggingConfig.log_config)
导致8040端口被占用,需要删除上面行。
本文摘自 :https://www.cnblogs.com/