如何在GAE中使用Python执行一次性初始化?

时间:2012-08-10 13:24:06

标签: python google-app-engine

我是 GAE / Python 新手。我有一些系统和应用程序变量,我想设置一次,并将它们应用于我的应用程序中的所有.py文件。任何人都可以告诉我如何实现(有一个仅在应用程序启动时运行一次的地方)?有点像在其他应用程序中对配置文件所做的那样。

我正在运行Python 2.7。

4 个答案:

答案 0 :(得分:2)

在GAE上,模块只在运行时加载一次(they are cached),因此您可以创建一个包含所有初始化,全局等的模块。如果您在app.yaml中使用threadsafe = true,请确保正确处理这些全局变量(以线程安全的方式)。

注意,在新实例上再次执行初始化。如果您的init是一个非常长的进程(秒),那么最好的方法是预先计算它,存储在数据存储区中并再次从数据存储区中将它加载到init模块中。

答案 1 :(得分:2)

另一种方法是使用lib_config来定义和覆盖自己的常量和钩子。 https://developers.google.com/appengine/docs/python/tools/appengineconfig

答案 2 :(得分:0)

关于appengine 2.7的推荐方法之一是在app.yaml中设置环境变量。

https://developers.google.com/appengine/docs/python/config/appconfig#env_variables

(正如其他答案一样,这不是唯一的方法。)

答案 3 :(得分:-1)

如果我理解你的查询,我想,你可以在GAE使用warmup request

在这种情况下,您实际上可以初始化您需要的所有var和方法..