Google App Engine / Drive SDK: captura muchas excepciones de fecha límite de HTTP

Nuestra aplicación se implementa en Google App Engine, Python runtime (2.7) y consume la API de Drive. Cada vez más, captura HTTPException debido a una fecha límite excedida, en diferentes puntos finales (Drive, OAuth, etc.)

Hemos implementado un mecanismo de retroceso exponencial con 5 bashs. Nuestra aplicación está llegando cada vez más a este límite (esta mañana, por ejemplo, tuvimos muchas de estas excepciones).

¿Cuál podría ser el origen de estos problemas? ¿Es posible boost el tiempo de espera?

Gracias por tu ayuda.

Aquí hay un stacktrace completo (API OAuth2):

 2013-06-07 21:11:10,851 ERROR An error occurred : Deadline exceeded while waiting for HTTP response from URL: https://accounts.google.com/o/oauth2/token Traceback (most recent call last): File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch return method(*args, **kwargs) File "/base/data/home/apps/s~unishared-gae/production.367909734400765242/main.py", line 733, in get creds = self.GetCodeCredentials() or self.GetSessionCredentials() File "/base/data/home/apps/s~unishared-gae/production.367909734400765242/main.py", line 301, in GetCodeCredentials creds = oauth_flow.step2_exchange(code) File "lib/oauth2client/util.py", line 128, in positional_wrapper return wrapped(*args, **kwargs) File "lib/oauth2client/client.py", line 1283, in step2_exchange headers=headers) File "lib/httplib2/__init__.py", line 1570, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File "lib/httplib2/__init__.py", line 1317, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "lib/httplib2/__init__.py", line 1286, in _conn_request response = conn.getresponse() File "/python27_runtime/python27_dist/lib/python2.7/httplib.py", line 500, in getresponse raise HTTPException(str(e)) 

Esta publicación de blog publicada en 2011 habla sobre cómo detectar DeadlineExceededError con metaclase en lugar de usar decoradores. No estoy seguro de que esto lo guíe o lo resuelva, pero le da una idea que puede ser útil.

 from google.appengine.api import mail from google.appengine.ext.deferred import defer from google.appengine.ext.webapp import RequestHandler from google.appengine.runtime import DeadlineExceededError import sys from traceback import format_exception from SOME_APP_SPECIFIC_LIBRARY import serve_500 from LAST_POST import email_admins class DecorateHttpVerbsMetaclass(type): def __new__(cls, name, bases, cls_attr): verbs = ['get', 'post', 'put', 'delete'] for verb in verbs: if verb in cls_attr and isinstance(cls_attr[verb], function): cls_attr[verb] = deadline_decorator(cls_attr[verb]) return super(DecorateHttpVerbsMetaclass, cls).__new__(cls, name, bases, cls_attr) class ExtendedHandler(RequestHandler): __metaclass__ = DecorateHttpVerbsMetaclass def handle_exception(self, exception, debug_mode): traceback_info = ''.join(format_exception(*sys.exc_info())) email_admins(traceback_info, defer_now=True) serve_500(self)