从appengine访问我的应用时,我经常遇到以下错误。有谁知道这是什么原因?
引起:com.google.apphosting.api.DeadlineExceededException:此请求(216e5897c4ca40e3)于2013/02/21 04:27:45.277 UTC开始,并且仍在执行2013/02/21 04:28:44.702 UTC
答案 0 :(得分:2)
这与AppEngine的慢度无关。发生的事情是,您正面临AppEngine为某些类型的呼叫设置的截止日期。
从文档“请求处理程序生成并返回对请求的响应的时间有限,通常大约60秒。一旦达到截止日期,请求处理程序就会中断.Java运行时环境会中断servlet通过抛出com.google.apphosting.api.DeadlineExceededException。“
所以这意味着您最有可能调用请求URL并且它已达到60秒的限制但尚未完成其任务并发送了响应。
如果您查看例外情况,请执行以下操作:引起:com.google.apphosting.api.DeadlineExceededException:此请求(216e5897c4ca40e3)于2013/02/21 04:27:45.277 UTC开始,并且仍在2013年执行/ 02/21 04:28:44.702 UTC。“ - 你可以看到已达到60秒的截止日期:04:27:45 - 04:28:44.702
请查看您的代码并尝试提前返回。如果您认为自己需要更多时间,请查看限制为10分钟的Cron Jobs或更复杂的要求,Backends。
答案 1 :(得分:0)
如果这些请求通常很快,那么失败的请求可能是第一次命中新实例。这意味着很多类加载会导致请求变长。
考虑使用预热请求来避免这种情况,请确保您的预热请求遇到与此方法使用的相同的类/框架:
https://cloud.google.com/appengine/docs/java/config/appconfig#Java_Warmup_requests