Google App Engine上无限循环的后果?

时间:2010-06-01 06:00:18

标签: google-app-engine infinite-loop infinite-sequence

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

我是一个业余爱好者开发者担心会出现一个小错误,最终可能导致数百个错误。

3 个答案:

答案 0 :(得分:7)

(我是Google员工,但对AppEngine没什么经验。请不要将此视为“官方”回复。)

我猜你正在使用Java servlet API - 如果没有,请指定。

来自AppEngine servlet docs

  

请求处理程序的数量有限   生成和返回的时间   通常是对请求的响应   大约30秒。一旦截止日期   已到达,请求处理程序   被打断了。

我不知道这是如何发生在紧密循环中的,这种循环不允许VM在“普通”Java中中断它。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

请求在终止之前必须花费多长时间roughly 30 second limit。但是,在流程终止前不久,将抛出DeadlineExceededError异常。

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