python - 如何在 webapp2 中导入模型和处理程序以确保快速启动新应用程序实例

标签 python google-app-engine lazy-initialization webapp2

我希望我的 google app engine webapp2 应用程序尽快启动(创建一个新的应用程序实例)。我想知道我应该注意哪些明显的减速(我知道..过早的优化,但如果我能帮助的话,我不想在最后做一个大规模的重构)

我有一个与此类似的文件夹层次结构:

-root_folder
__init__.py
main.py
config.py
routes.py
models.py
gviz_api.py
... 20 more .py files
-web_folder
    __init__.py
    some_handlers.py
    more_handlers.py
    20 more.py files
    ..
-data_model_folder
    __init__.py
    some_models.py
    more_ndb_models.py
    10 more model files
-many more folders e.g. templates, simpleauth etc.

在 main.py 中,我创建了一个带有路由器的应用程序实例(路由器是从 routes.py 导入的)。 routes.py 导入每个处理程序(为每个路由分配一个处理程序)。每个处理程序几乎都导入每个数据模型。这是否意味着我的应用创建新应用实例的速度非常慢?

我预计到我的项目结束时会有大约 100 个处理程序和 30 个数据模型,尽管其中许多将很少使用。

导入数据模型(从 some_handlers.py 内部)

以下是否足够快:

从 root_folder.data_model_folder.more_ndb_models 导入 special_model

我应该使用配置/注册表吗?

最佳答案

Webapp2 支持 lazily-imported handlers .

关于python - 如何在 webapp2 中导入模型和处理程序以确保快速启动新应用程序实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711421/

相关文章:

python - django 1.5 ModelForm 中的 "This field cannot be null"错误

javascript - AngularJS Google App Engine API 加载错误

python - xoauth.py IMAP token 在 1 小时后过期

google-app-engine - App Engine 中止 mapreduce 分片

c# - Lazy<T> 与标准惰性实例化相比有哪些优势?

python - 用户警告 : failed to import the optional _tifffile C extension module

python - PySpark - RDD 中对象的时间重叠

python - 没有 Sympy 两侧限制吗?

Android 惰性数据绑定(bind)可能吗?

hibernate - hibernate 中的延迟初始化