2017-11-04 2 views
1

내가 만약 IoT 응용 프로그램에 대한 라즈베리 파이에 플라스크를 사용하고 있습니다.플라스크 다시 시작/종료 콜백

내 문제는 응용 프로그램을 종료하거나 Flask 자동 다시로드 프로그램으로 다시 시작하기 전에 내 외부 장치에 대한 연결을 완전히 닫아야한다는 것입니다.

클린 종료에 사용할 수있는 콜백/처리기/이벤트/등이 있습니까? (자동 리로더에서도 작동 함)

+0

'app'에'teardown_appcontext' 메소드를 이미 알고 있습니까? 재시작에 상응하는 것이 있는지 확실하지 않습니다. 계획 B는 파일 변경시 자동 다시로드를 피하기 위해 디버그 모드를 해제 할 수 있습니다. – PRMoureu

+0

나는 teardown_appcontext 접근 방식을 이미 시도했지만 불행히도 실제 앱이 닫힐 때가 아니라 HTTP 연결이 닫힐 때마다 호출됩니다. appcontext라는 이름은 약간 오도 된 것입니다. 나는 또한 atexit를 시도했지만 이것은 재시작이 아니라 종료시에만 실행된다. – Stephan

+1

참고로 프로덕션 환경에서는 dev 서버를 절대로 사용하지 않아야합니다. Gunicorn과 같은 프로덕션 WSGI 서버를 사용하십시오. – davidism

답변

2

응용 프로그램 종료는 WSGI 서버 표준의 일부가 아닙니다. 서버가 응용 프로그램 코드 내에서 완전히 멈출 때를 알 수있는 일반적인 방법은 없습니다.