2017-09-21 5 views
0

geodisを使用するフラスコアプリケーションは、geodisから緯度と経度にマップされた都市のキャッシュとして機能するredisに依存しています。herokuで展開時に一度Pythonスクリプトを実行

私はそれの展開に一度実行するように設定することができどのよう

from geodis.provider.geonames import GeonamesImporter 
import geodis 
fileName = os.path.split(geodis.__file__)[0] + "/data/cities1000.json" 
importer = GeonamesImporter(fileName, os.getenv("REDIS_HOST"), os.getenv("REDIS_PORT"), 0) 
importer.runimport() 

、Herokuの上のフラスコWebアプリケーションの展開に一度だけ実行する必要があり、このコードを持っていますか?

答えて

0

私は1つの方法は、アプリケーションの初期化機能を使用することだと思う。

if __name__ == "__main__": 
    fileName = os.path.split(geodis.__file__)[0] + "/data/cities1000.json" 
    importer = GeonamesImporter(fileName, 
           os.getenv("REDIS_HOST"), 
           os.getenv("REDIS_PORT"), 0) 
    importer.runimport() 
    app.run(host='0.0.0.0', port=app.config['PORT']) 

これは、アプリケーションを作成する前に実行されます。

+1

おかげさまで、redis dbにアップロードされたcities1000.jsonファイルは79Mbになり、趣味Dev計画は25mb以上をサポートしないため、残念ながら私はgeodisの使用計画を破棄しなければなりませんでした。 –

+0

コードは仕事をしましたが、問題はサイズだけでしたか? – senaps

+0

私はしようとしましたが、maxmeoryエラーが発生し、サイズ制限のために続行できません。あなたの助けをありがとう –

関連する問題