GAE: продолжается ли выполнение после нажатия кнопки "превышен предел мягкой частной памяти"?


Один из моих запросов очереди задач GAE превысил предел мягкой памяти (журнал ниже). В моем понимании предел мягкой памяти заключается в том, что он позволяет завершить запрос, а затем, после его завершения, он завершает работу экземпляра.

Однако, судя по журналам, когда я достигаю предела мягкой памяти, выполнение останавливается. Я больше не вижу кода регистрации после сообщения об ограничении памяти, и я проверил свое состояние, и это не похоже на завершение запроса. Я не уверен, что это имеет значение, но этот запрос выполняется в отложенной библиотеке TaskQueue.

Итак, если TaskQueue достигает мягкого ограничения частной памяти, продолжается ли выполнение до завершения запроса или оно немедленно останавливается? Возможно ли, что только регистрационный код больше не записывается?

Log:

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.

Скриншот Журнала

2 4

2 ответа:

Здесь происходит то, что обработчик в конце проверяет состояние памяти,если оно превышает предел, он регистрирует ошибку и завершает работу экземпляра.
Поскольку задача успешно завершена (вы можете видеть, что она завершается в состоянии 200), она не будет повторять ее.

Когда во время выполнения обработчика состояние памяти будет намного выше предела памяти, обработчик завершит работу экземпляра и вернет ошибку 500, в этом случае задача повторится.

Из моего опыта: если ваш экземпляр попадает в soft memory hit, ваш запрос все равно будет завершен, но статус ответа будет 500.