为了账号安全,请及时绑定邮箱和手机立即绑定

Google Appengine,运行繁重数据存储写入cron作业的最便宜的方式?

Google Appengine,运行繁重数据存储写入cron作业的最便宜的方式?

回首忆惘然 2021-09-13 10:22:29
我有一个用 Go 编写的 Google appengine 应用程序,它有一个 cron 进程,每天凌晨 3 点运行一次。这个过程会查看白天我的数据发生的所有变化,并存储一些关于发生的事情的元数据。我的用户可以运行有关此元数据的报告,以查看几个月内发生的趋势。该过程每晚执行大约 10-2000 万次数据存储写入。一切正常,但自从我开始运行它后,我注意到我从 Google 支付的每月账单显着增加(从大约 50 美元/月增加到大约 400 美元/月)。我刚刚设置了一个非常基本的任务队列,它在其中运行,我根本没有更改默认设置。有没有更好的方法可以让我在晚上运行这个过程来省钱?我从来没有搞乱后端(现在已经贬值)或模块 api,我知道他们最近改变了很多这些东西,所以我不知道从哪里开始寻找。任何建议将不胜感激。
查看完整描述

2 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

在凌晨 3 点查看您的实例。可能是 GAE 启动了很多来处理这项工作。您可以配置您的作业以使其运行更少并行,因此它需要更长的时间,但也许它只需要 1 个实例。但是,如果您的数据库写入确实是最大的因素,这不会产生很大的影响。

您可以尝试查看您的数据模型和索引。请记住,每个索引字段需要额外写入 2 次,因此如果您不需要它们,请查看是否可以从某些字段中删除索引。


查看完整回答
反对 回复 2021-09-13
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

您可以做的一项改进是批量写入操作,您可以为此使用 memcache(支付专用的,因为它更可靠)。将更新写入 memcache,一旦达到 900K 左右,将其刷新到数据存储。这将大大减少写入数据存储的次数,尤其是在元数据很小的情况下。


查看完整回答
反对 回复 2021-09-13
  • 2 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信