问题标签 [gae-quotas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
703 浏览

google-app-engine - GAE:队列、配额和后端实例

我有一个队列,里面有很多任务。我想使用一个后端实例来处理这个队列。我的配额信息告诉我,我在数百个前端实例小时数上超出了预算,并且没有使用任何后端实例小时数。由于我只配置了一个后端实例,我预计每小时收费不超过 1 个(后端)实例小时。这是我的配置:

后端.yaml

队列.yaml

在我的脚本中将任务添加到队列中

账单状态

任务标题

0 投票
1 回答
100 浏览

java - 为什么在谷歌应用引擎中增加了请求和安全请求配额?

当我使用请求 URL 作为http://myapp.appspot.com配额时,仅Quota Details --> Requests.

但是当我使用请求 URL 作为https://myapp.appspot.com配额时,Quota Details --> RequestsQuota Details --> Secure Requests.

当我使用请求httpsURL 时,为什么两者RequestsSecure Requests配额使用都会增加。

你能给我一个理由以及解决它的任何方法吗?

谢谢。

0 投票
2 回答
114 浏览

google-app-engine - 未触及 App Engine 后端配额

我有一个从我的前端应用程序代码中调用的动态后端进程。为此,它必须通过 app.yaml 可见。但是当后端以这种方式运行时,我在管理面板上看到我的后端配额没有变化,这让我相信它是在前端配额上运行的。

后端通过 ataskqueue.add(url='/path/to/backend')从前端调用。

这不应该调用后端实例至少 15 分钟并因此使用该配额吗?

0 投票
2 回答
368 浏览

google-app-engine - __BlobFileIndex__ 填充数据存储配额

我将对象序列化到我的应用程序中的 blobstore,并在它们更改时删除并重新创建它们。我知道这不是最好的方法,但我发现这是快速原型制作的好方法。

现在我正处于使用数据存储的阶段,但是我遇到了问题。我的数据存储配额已满!:) 我为这个问题做了很多搜索,但我在这里。

显然,对于每个 blob,__ BlobInfo ____ BlobFileIndex __种都保留有关 blob 的信息。我的问题是当我删除 blob 时,__ BlobInfo __中的信息被删除,但__ BlobFileIndex __中的信息没有被删除

我拼命尝试了 appcfg vacum_indexes,但这并没有达到预期的效果。

顺便说一句,我使用Java平台。

这是我的问题

  1. 如何清除未使用的__ BlobFileIndex __条目?
  2. 处理这种情况不再发生的正确方法是什么?

谢谢你。

编辑:哇哦!我现在看到我无法删除这些不需要的索引 a)数据存储管理员没有列出它们 b)手动删除代码抛出异常(java.lang.IllegalArgumentException:非法 key.path.element.type:BlobFileIndex)因为以双下划线开头的实体是应用引擎保留实体,它不允许我删除它。谷歌的伙计们,我被困在这里 :)

0 投票
0 回答
1038 浏览

google-app-engine - Appengine 超出配额

我已经使用 appengine 很长时间了,但是今天,我的应用程序已经超过配额 3 小时(> 我的每日费用)。然而,仪表板显示几乎没有使用任何资源,因此它应该远不及这个每日限制。

同样奇怪的是,尽管仪表板显示我已达到每日限额,但我注意到检索没有问题。仅写入数据存储会产生超出配额的异常(com.google.apphosting.api.ApiProxy$OverQuotaException:API 调用 datastore_v3.Put() 需要的配额超过可用配额)。然而,下面的统计数据显示那里没有很多写入。如果我查看配额详细信息,所有指标都可以。

0 投票
1 回答
517 浏览

google-app-engine - 如何处理通道 api 速率限制?

我需要在我的网站上实现实时通知系统,例如 stackoverflow(当有人向问题添加答案/评论时)。我开始知道通道 API 是在 appengine 上实现它的最简单方法。但我被通道 API 的配额限制所吸引。启用计费后,每分钟只能创建 60 个令牌。

  • 当您遇到流量峰值(1000 个新用户/秒)时,如何处理此通道速率限制?
  • 如何管理 5000 个用户(在任何时间点)?
  • 令牌的最长到期时间是多少?

    *假设每个用户都应该获得一个令牌。

0 投票
1 回答
448 浏览

google-app-engine - 为什么我达到了数据存储读取操作配额?

我在一个无法访问 Internet 的地方 3 周,刚回来发现我的一个应用程序自 1 月 18 日开始在大约 18 小时后达到配额限制(数据存储读取操作)。我没有看到来自用户或爬虫的流量有任何增加。这是日志中的错误:“API 调用 datastore_v3.RunQuery() 需要的配额超过了可用配额。”

这似乎很奇怪,因为这个应用程序已经运行了几年,而且我正在缓存大多数数据存储请求。

请帮忙 - 这影响了我的底线!谢谢。

0 投票
1 回答
173 浏览

google-app-engine - appengine 玩具程序达到读写配额限制

假设我想制作一个 appengine 应用程序,它可以存储 50,000 个单词的词典以及 10 种其他类似大小的语言的等效词典。

我在我的开发服务器上本地工作,但是当我将第一个字典加载到真正的应用服务器时,我立即超过了我每天的写入配额。我不知道有多少字典条目进入了数据存储区。所以,24 小时后,我去尝试批量下载字典,看看我实际有多少条目,但这样做我达到了每天的阅读量配额,但我的麻烦却一无所获。我尝试在设置每日最高 1.00 美元的情况下启用计费,并通过批量装载机达到该配额,但没有获得任何数据说明我的麻烦或我的 1.00 美元。

无论如何,所以我查看了我的数据存储查看器,它显示我的每个字典单词都需要 8 次写入数据存储。

那么,这是否意味着这种应用程序不适合 appengine 呢?我不应该尝试在其中存储字典吗?有没有更聪明的方法来做到这一点?例如,我可以以某种方式将字典以文件形式存储在 blob 存储中,然后从那里以编程方式对其进行处理吗?

感谢您的任何建议

0 投票
1 回答
408 浏览

google-app-engine - 传出带宽是总响应的 2 倍

我有一个非常简单的应用程序引擎应用程序,提供存储在 blobstore 中的 1.8Kb - 3.6Kb gzipped 文件。从数字文件 ID 到 blobkey 的映射存储在数据存储中并缓存在 memcache 中。servlet 实现很简单:在请求中接收到一个数字文件 ID;从 memcache/datastore 中检索 blobkey,并BlobstoreService.serve(blobKey, resp)调用标准来提供响应。正如预期的那样,应用日志显示响应大小始终与提供的 blobstore 文件大小相匹配。

我一直在进行一些重点容量测试,这表明传出带宽配额利用率一直报告为大约是我预期收到的请求的 2 倍。我一直在一次运行 100k 请求,将客户端收到的字节相加,将其与应用程序日志进行比较,除传出带宽配额利用率外,所有内容均保持平衡。

对于我上面描述的简单应用程序如何确定传出带宽配额利用率有什么帮助吗?我错过了什么或没有考虑什么?为什么它与应用日志中显示的响应大小总数不相符?

[2013.03.04 更新:我放弃了使用 blobstore 并恢复为将 blob 直接存储在数据存储中。传出带宽利用率现在完全符合预期。似乎 2x 乘数在某种程度上与 blobstore 的使用有关(但仍然无法解释)。我在使用 blobstore 服务时遇到了其他几个问题;最成问题的是额外的数据存储读取和写入(这与数据存储中管理的 blobinfo 和 blobindex 元数据有关 - 这是我最初试图通过将数据迁移到 blobstore 来减少的)。对我来说一个特别严重的问题是:https ://code.google.com/p/googleappengine/issues/detail?id=6849. 我认为这是 blobstore 服务内存泄漏;创建 Blob 后,您将永远无法删除数据存储中的 Blob 元数据。我将永远为此付出代价,因为我愚蠢地进行了 24 小时的容量和性能测试,现在无法释放测试期间使用的存储空间。看来,blobstore 目前只适用于非常特定的场景(即永久静态数据)。具有大量流失或频繁刷新或更改的数据的对象不应存储在 blobstore 中。]

0 投票
1 回答
134 浏览

python - 如何保存内存缓存值直到配额被补充?

为了每天发送不超过 100 封电子邮件,我在我的应用程序中创建了以下逻辑:

  1. 所有要发送的电子邮件信息都存储在数据存储中;
  2. 有一个 cron 作业,每 15 分钟运行一次;
  3. 这项工作是从队列中发送电子邮件消息;
  4. 在从 Datastore 队列中读取消息之前,作业会从 memcache ( is_todays_quota_exceeded) 中读取值;
  5. 如果不是,请尝试发送消息。如果成功,则更新此消息的队列状态。如果它失败了apiproxy_errors.OverQuotaError,写is_todays_quota_exceeded等于1

我遇到的问题是我应该将 memcache 值存储到 GAE 日结束(即直到配额被补充)。我怎样才能在几秒钟内计算出来?

每日配额每天在太平洋时间午夜补充。

更新。我尝试了以下方法:

但它在最后一行失败 - 'datetime.timedelta' object has no attribute 'total_seconds'。我用的是 Python 2.5,貌似total_seconds是后来实现的。

更新2。以下有助于计算到今天结束的秒数: