谷歌应用引擎.如何在应用程序范围中创建常量



我想创建全局范围常量dict,它将被多个视图访问。

目前,我看到部署后的场景:获取大文件,创建一个dict,将这个dict保存在内存中。管理员可以重新执行此过程。

您可以在模块中定义dict,然后将其导入到您希望引用的位置,也可以从数据存储加载它,并在模块中设置值。您可以在预热请求时执行此操作。

在模块中定义它意味着更改内容需要取消部署应用程序。

在数据存储中定义它,意味着实例将在启动时重新加载任何新的定义。您还可以设置一个处理程序,如果从数据存储读取,该处理程序可以触发刷新。直接在数据存储中定义意味着,如果使用compressed=True的BlobProperty和使用ndb,则其pickle状态需要小于1MB(压缩)。

与模块定义类似的其他变体是从yaml文件等加载它。您可以将app.yaml中的dict定义为环境变量。

有很多选择,在不了解用例细节的情况下,很难推荐特定的策略。

最新更新