2012-05-29 3 views
8

저는 Python으로 웹 개발을 처음 접했고 웹 애플리케이션을 시작하기 위해 Flask를 선택했습니다. 응용 프로그램 종료 전에 무료로 사용할 리소스가 있지만 정리 코드를 넣을 위치를 찾을 수 없습니다. Flask는 요청 처리 전후에 콜백을 등록하기 위해 before_requestteardown_request과 같은 일부 데코레이터를 제공합니다. 응용 프로그램이 중지되기 전에 콜백을 등록하는 것과 비슷한 것이 있습니까? 감사합니다. .Flask 응용 프로그램에서 정리 코드를 어디에 넣어야합니까?

+3

어떤 리소스가 있습니까? –

+0

응용 프로그램이 중단 될 때 Flask가 제공하는 기능을 알지 못합니다. 정확히 정리하고 싶은 것이 무엇인지 아는 것은 흥미로운 일입니다. 파이썬은'atexit' 모듈을 가지고 있습니다. –

+0

neo4j 데이터베이스를 사용하고 있으며 연결 풀을 유지합니다. 나는 atexit이 일을 할 것이라고 생각한다. 내 정리 코드를 입력하는 것이 더 적절한 곳입니까? –

답변

3

atexit 모듈을 사용하면 프로그램 종료 콜백을 등록 할 수 있습니다. 응용 프로그램이 신호에 의해 종료되면 콜백이 호출되지 않습니다. 이러한 경우를 처리해야하는 경우 signal 모듈을 사용하여 동일한 콜백을 등록 할 수 있습니다 (예 : SIGTERM 신호를 처리하려는 경우).

정확히 정리하려고하는 것이 잘못 이해되었을 수도 있지만 파일 핸들이나 데이터베이스 연결과 같은 리소스는 인터프리터 종료시 어쨌든 닫히므로 걱정하지 않아도됩니다.

관련 문제