인프런 커뮤니티 질문&답변

JB_님의 프로필 이미지
JB_

작성한 질문수

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)

uvicorn reload 설정 관련

해결된 질문

작성

·

5.3K

1

안녕하세요!
 
이전에 nest.js 강의를 듣고,
너무나 큰 만족감과 함께 많은 도움을 얻었던 기억이 있어서
fast api 강의도 출시하자마자 구입하여 공부중인 회원입니다!
 
이번 질문을 통해 문의드리고자 하는 내용은 uvicorn의 reload 설정 문제입니다.
현재 클라이언트로부터 파일(.zip)을 업로드 받아서, 압축 해제 후 subproccess로 실행시키는 API를 만들어서 연습해보고 있습니다.
참고로 압축 결과물은 파이썬 파일(.py) 입니다.
 
그런데, 압축해제 할 때마다 uvicorn이 변화를 감지하여 서버를 재실행시킵니다.
 
물론 reload 기능을 OFF하면, 문제가 없습니다.
 
하지만 uvicorn.run 옵션 중에 reload_excludes가 있어서 사용해보려고 했으나 원하는대로 동작하지 않네요 ㅠㅠ
 
프로젝트 루트 경로에 있는 server.py 파일은 아래와 같이 작성하였고,
파일 업로드를 받아 압축해제하는 경로는 다음과 같습니다.
{{project root}}/app/files
import uvicorn


if __name__ == "__main__":

uvicorn.run(
"app.main:app",
host="localhost",
port=8000,
reload=True,
reload_excludes=["app/files/"],
)
 
 
위와 같이 설정하여도 uvicorn은 app/files 경로내의 변화를 감지합니다..ㅠ_ㅜ
 
uvicorn의 reload 제외 설정을 어떻게 해야할까요! 답변 부탁드리겠습니다..!

답변 1

1

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요!

좋은 말씀 감사드립니다. 뿌듯하네요 ㅎㅎ

새로 파일이 동적으로 생기는 경우 reload 배제를 할 수 없는걸로 알고 있습니다.

대신에, reload_dir 옵션을 사용해보세요!

https://www.uvicorn.org/settings/#development

감사합니다.

 

JB_님의 프로필 이미지
JB_
질문자

말씀해주신 방법대로 문제를 해결했습니다!

 

조금만 바꿔서 생각해보면,

reload를 원하는 경로만 따로 설정해주면 되는 일이었네요 ㅠ_ㅜㅎㅎ

 

역시 질문을 드리길 잘했네요 :) 감사드립니다 😀

JB_님의 프로필 이미지
JB_

작성한 질문수

질문하기