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/