(Я сотрудник Google, но у меня мало опыта работы с AppEngine. Пожалуйста, не считайте это «официальным» ответом.)
Я предполагаю, что вы используете API сервлетов Java - если нет, пожалуйста, укажите.
Обработчик запросов имеет ограниченное количество времени на создание и возврат ответ на запрос, как правило, около 30 секунд. После крайнего срока достигнут, обработчик запросов прерывается.
Я не знаю, как/происходит ли это в узком цикле, который не позволил бы виртуальной машине прервать ее в «нормальной» Java.
Google AppEngine налагает ограничение на то, сколько времени может занять запрос до его завершения,
Существует примерно 30-секундное ограничение на то, сколько времени должно пройти запрос, прежде чем он будет завершен. Однако незадолго до завершения процесса будет выдано исключение DeadlineExceededError
.
Кроме того, существуют поминутные квоты , чтобы приложение не использовало слишком большую квоту за короткий период времени. Очень маловероятно, что ваше приложение превысит поминутную квоту при нормальных условиях, но при необходимости можно запросить увеличение этой квоты .
Хотя Джон рассмотрел низкоуровневый случай бесконечного цикла, может также возникнуть ситуация, когда один из ваших обработчиков вызывается чрезмерное количество раз - возможно, вы случайно настроили что-то на резервное копирование всего хранилища данных каждую секунду вместо одного раза в день. Теоретически, вы можете израсходовать много ресурсов даже за 30 секунд. Тем не менее, вам не грозит огромная сумма расходов. У вас есть возможность установить лимит на то, сколько вы хотите "потратить" в день. Если у вас не осталось квоты, приложение выдаст ошибку, а не отправит вас в тюрьму для должников.