Google App Engine。如何在应用范围内创建常量?

时间:2013-11-19 06:43:53

标签: python google-app-engine

我想创建全局范围常量字典,可由多个视图访问。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

有很多选项,如果不了解用例的具体情况,很难推荐特定的策略。