Skip to main content
 首页 » 编程设计

python之应用引擎 : Few big scripts or many small ones

2025年05月04日17over140

我正在开发一个我想在 App Engine 上托管的网站。我的 App Engine 脚本是用 Python 编写的。现在假设您可以在我的网站上注册并拥有用户资料。现在,用户配置文件有点广泛,有 50 多个不同的 ndb 属性(仅作为示例)。

如果用户想要编辑他的记录(他可以在某种程度上这样做),他可以通过我的网站向应用引擎后端发送请求。

配置文件是部分的方式,通常大约 5 到 10 个属性属于页面的一个小部分或容器。在服务器端,我会有多个小脚本来处理编辑整个配置文件的小部分。例如,一个脚本会更新“地址信息”,另一个脚本会更新“兴趣”和“关于我”的文本。这样我最终得到了 5 个左右的脚本。优点是每个脚本易于维护,只做一件特定的事情。但我不知道这样的事情是否明智。因为如果我在页面的其余部分保持这种习惯,我可能最终会得到大约 100 个或更多不同的 .py 脚本和一个非常大的 app.yaml,而且我不知道它们在谷歌服务器上的缓存效率如何。

所以 tl;dr:

在我的 App Engine 后端上执行小任务的许多小后端脚本是个好主意,还是我应该使用一些脚本来处理一系列不同的任务?

请您参考如下方法:

这里有两个重要的考虑因素。

  1. 从客户端到服务器的往返调用次数。

更新用户配置文件的一次调用比更新用户配置文件不同部分的 5 次调用要快得多,因为您可以节省客户端和服务器之间以及服务器和数据存储之间的往返时间。

  1. 写成本。

如果你在用户配置文件中更新 5 个属性并保存它,然后更新其他 5 个属性并保存它等等,你的写入成本会高得多,因为每次更新都会产生写入成本,包括对所有索引属性的更新 -即使是那些你没有改变的。

与其创建具有 50 个属性的庞大用户配置文件,不如将很少更改的属性(姓名、性别、出生日期等)保留在一个实体中,并将​​其他属性分离到一个或多个不同的实体中.通过这种方式,您可以降低编写成本,同时减少负载(除非需要,否则无需来回移动所有 50 个属性),并简化您的应用程序逻辑(即,如果用户仅更新地址,则无需更新整个用户配置文件)。