2016-11-20 3 views
0

플라스크를 사용하여 영웅에 미니 서버를 구축했습니다. 서버 측 코드는 다음과 같습니다.플라스크 가져 오기 요청에 일관성이 없음

from flask import Flask 
    from flask_cors import CORS, cross_origin 

    app = Flask(__name__) 

    schedule = {'Basketball': 'old value'} 

    @app.route("/") 
    @cross_origin() 
    def get_all_schedule(): 
     return json.dumps(schedule) 

    @app.route("/update", method=['post']) 
    def update_basketball_schedule(): 
      globle schedule 
      schedule['Basketball'] = 'new value' 

    if __name__ == "__main__": 
     app.run(host='0.0.0.0') 

일정 데이터를 저장할 전역 사전이 하나 있습니다. 게시물 URL을 사용하여이 일정을 업데이트하고 "/"URL을 사용하여 데이터를 가져 오는 것은 꽤 간단합니다.

이 응용 프로그램을 Chrome 브라우저에서 테스트하고 있습니다. 나는 한 번 게시물 URL을 불렀다. 그리고 나서 "/"를 부를 때, 때로는 "새로운 값"으로 사전을 반환하고 때로는 "오래된 값"으로 사전을 반환합니다. 이 행동의 이유는 무엇입니까?

나는 heroku에서 무료 dyno를 사용하고 있습니다. 내 Procfile에서 :

 web: gunicorn server:app 

답변

1

Heroku가 동력계 가끔, 다시 사망, 또는 그렇지 않으면 사용할 수 없습니다. 이 때문에 메모리에 저장된 모든 변수의 값이 손실됩니다. 이를 방지하기 위해 redis 또는 다른 키/값 저장소를 사용하여 데이터를 보관할 수 있습니다.

+0

그냥 Redis에 대해 봤습니다. Redis는 메모리 내 데이터 구조 저장소이므로 Heroku dyno 재설정으로 인해 어려움을 겪을까요? –

+1

아니요, Heroku는 영향을받지 않는 추가 기능을 제공합니다. 자세한 내용은 [추가 기능 페이지] (https://elements.heroku.com/addons/heroku-redis)를 참조하십시오. –

+0

정말 고마워요! –

관련 문제