【问题标题】:running a python script once on deploy on heroku在heroku上部署一次运行python脚本
【发布时间】:2018-03-03 00:27:01
【问题描述】:

我有一个使用 geodis 的烧瓶应用程序,它依赖于 redis,它充当从 geodis 映射到纬度和经度的城市的缓存。

我有这段代码需要在 heroku 上部署烧瓶网络应用程序时运行一次,

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

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

【问题讨论】:

    标签: python heroku flask redis


    【解决方案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']) 
    

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

    【讨论】:

    • 谢谢,Cities1000.json 文件上传到 redis db 后变成 79Mb 并且 hobby-Dev 计划不支持超过 25mb,所以很遗憾我不得不放弃使用 geodis 的计划。
    • 代码是否完成了工作,唯一的问题是大小?
    • 我试过了,但它给出了 maxmeory 错误,并且由于大小限制而无法继续。感谢您的帮助
    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2013-08-11
    • 2018-07-14
    • 2015-05-13
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 2017-06-30
    相关资源
    最近更新 更多