在heroku上部署时运行一次python脚本

时间:2017-09-21 15:13:39

标签: python heroku flask redis

我的烧瓶应用使用geodis依赖redis作为城市缓存,映射到geodis的纬度和经度。

我有这个代码,需要在heroku上部署flask web应用程序时运行一次,

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()

如何将其设置为在部署时运行一次?

1 个答案:

答案 0 :(得分:0)

我认为一种方法是使用应用程序初始化函数。

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']) 

这会在创建应用程序之前运行它。