我的一个GAE任务队列请求超过了软内存限制(下面的日志)。我对软内存限制的理解是,它让请求完成,然后在完成后关闭实例。
然而,从日志中看,当我达到软内存限制时,执行就会停止。在memory limit消息之后,我看不到更多的日志记录代码,并且我已经检查了我的状态,看起来请求没有完成。我不确定这是否重要,但是这个请求是在一个延迟库TaskQueue中执行的。
那么,如果TaskQueue达到了软私有内存限制,执行是继续到请求完成,还是立即停止?有没有可能只记录日志代码?
日志:
2012-04-11 23:45:13.203
Exceeded soft private memory limit with 145.848 MB after servicing 3 requests total
W 2012-04-11 23:45:13.203
After handling this request, the process that handled this request was found to be using too much memory and was terminated. This is likely to cause a new process to be used for the next request to your application. If you see this message frequently, you may have a memory leak in your application.

发布于 2012-04-12 13:15:51
这里发生的事情是,末尾的处理程序检查内存状态,如果内存状态超过限制,它将记录一个错误并关闭实例。
由于任务已经成功完成(您可以看到它终止将状态200),它将不会重试它。
当在处理程序执行期间执行时,内存状态远远超过内存限制,处理程序将关闭实例并返回错误500,在这种情况下,任务将重试。
发布于 2012-04-12 13:09:19
根据我的经验:如果您的实例命中软内存命中,您的请求仍将完成,但响应状态将为500。
https://stackoverflow.com/questions/10117518
复制相似问题