5

我不是 Google App Engine 用户。但是,我了解您需要为 CPU 时间和其他资源付费。如果您碰巧创建了无限循环,会有什么后果?谷歌会终止它,还是你必须以某种方式自己手动完成?

我是一个业余开发者,担心一个小错误可能最终导致数百人的损失。

4

3 回答 3

7

(我是 Google 员工,但对 AppEngine 几乎没有经验。请不要认为这是“官方”回复。)

我猜您正在使用 Java servlet API - 如果没有,请说明。

来自AppEngine servlet 文档

请求处理程序生成并返回对请求的响应的时间有限,通常约为 30 秒。一旦达到最后期限,请求处理程序就会被中断。

我不知道这如何/是否发生在一个不允许 VM 在“正常”Java 中中断它的紧密循环中。

于 2010-06-01T06:05:42.787 回答
3

虽然 Jon 处理了无限循环的低级别情况,但也可能存在这样一种情况,即您的一个处理程序被重复调用过多次 - 也许您不小心配置了一些东西以每秒而不是每天一次备​​份整个数据存储. 从理论上讲,即使是 30 秒的块,您也可以使用大量资源。但是,您仍然不会面临收取巨额费用的危险。您可以选择设置每天要“花费”多少的限制。如果您没有剩余配额,您的应用程序将返回错误,而不是将您放入债务人监狱。

于 2010-06-01T19:52:11.127 回答
1

Google AppEngine 对请求在终止之前可能需要多长时间施加限制,

请求在终止之前必须花费的时间大约有30 秒的限制。但是,在进程终止前不久,DeadlineExceededError将抛出异常。

此外,还有每分钟配额,以防止应用程序在短时间内消耗过多的配额。在正常情况下,您的应用程序不太可能超过每分钟配额,但如果需要,可以请求增加此配额。

于 2010-06-02T06:03:57.833 回答