반응형
#!/usr/bin/env python
from datetime import datetime
from app import app
import config
if __name__ == '__main__':
print '################### Restarting @', datetime.utcnow(), '###################'
app.run(port=4004, debug=config.DEBUG, host='0.0.0.0')
서버를 시작하거나 파일이 업데이트되어 자동으로 다시 시작될 때 항상 인쇄 줄이 두 번 표시됩니다.
################### Restarting @ 2014-08-26 10:51:49.167062 ###################
################### Restarting @ 2014-08-26 10:51:49.607096 ###################
실제로 문제가되지는 않지만 (나머지는 예상대로 작동 함) 왜 이렇게 작동하는지 궁금합니다. 어떤 아이디어?
해결 방법
Werkzeug 리 로더는 코드가 변경 될 때마다 해당 프로세스를 다시 시작할 수 있도록 자식 프로세스를 생성합니다. Werkzeug는 app.run ()
을 호출 할 때 개발 서버와 함께 Flask를 제공하는 라이브러리입니다.
use_reloader
를 False
로 설정하면 동작이 사라지는 것을 볼 수 있지만 다시로드 기능도 손실됩니다.
app.run(port=4004, debug=config.DEBUG, host='0.0.0.0', use_reloader=False)
flask run
명령을 사용할 때도 리 로더를 비활성화 할 수 있습니다.
FLASK_DEBUG=1 flask run --no-reload
다시로드하는 하위 프로세스에있는시기를 감지하려면 WERKZEUG_RUN_MAIN
환경 변수를 찾을 수 있습니다.
import os
if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
print '################### Restarting @ {} ###################'.format(
datetime.utcnow())
@app.before_first_request
def before_first_request():
print '########### Restarted, first request @ {} ############'.format(
datetime.utcnow())
요청을 처리하기 위해 분기 또는 새 하위 프로세스를 사용하는 풀 스케일 WSGI 서버에서이를 실행하는 경우 before_first_request
핸들러가 각각의 새 하위 프로세스에 대해 호출 될 수 있습니다 는 점을 고려하십시오. .
참조 페이지 https://stackoverflow.com/questions/25504149
반응형
'파이썬' 카테고리의 다른 글
파이썬 ipython 노트북에 인쇄되지 않음 (0) | 2020.12.09 |
---|---|
파이썬 날짜 시간을 POSIX 시간으로 변환 (0) | 2020.12.09 |
파이썬 OpenCV Python : ValueError : 압축을 풀기에 너무 많은 값 (0) | 2020.12.09 |
파이썬 python pyodbc : 특정 인스턴스에 연결하는 방법 (0) | 2020.12.09 |
파이썬 프린트가 줄 바꿈이나 공백을 추가하지 않도록하려면 어떻게해야합니까? (0) | 2020.12.09 |
댓글