2016-11-20 12 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') 

私はスケジュールデータを格納するためのグローバルな辞書「スケジュール」を1つ持っています。このスケジュールを更新するには投稿URLを使用し、データを取得するには "/" URLを使用してください。

私はこのアプリケーションを私のChromeブラウザでテストしています。私はポストURLを一度呼びました。そして、 "/"を呼び出すと、時には "新しい値"で辞書を返し、時には "古い値"で辞書を返します。この行動の理由は何ですか?

私は英雄の上で無料のdynoを使用しています。私Procfileで :

 web: gunicorn server:app 

答えて

1

Herokuのdynos時折、リセット死ぬ、またはそれ以外の場合は無効になっています。このため、メモリに格納されているすべての変数の値は失われます。これに対処するには、redis、または別のキー/値ストアを使用してデータを保持することができます。

+0

ただ、レディスについてはグーグルグーグル。 Redisはメモリ内のデータ構造ストアであり、Heroku dynoのリセットにも苦しんでいますか? –

+1

いいえ、Herokuはこれの影響を受けない赤いアドオンを提供しています。詳細については、[アドオンページ](https://elements.heroku.com/addons/heroku-redis)を参照してください。 –

+0

ありがとう! –

関連する問題