Пример #1
0
 def __call__(self, environ, start_response):
     try:
         result = self.app(environ, start_response)
         if isinstance(result, list):
             self._cleanup_request()
             return result
         else:
             return self._cleanup_iterator(result)
     except self.flush_on_errors as exc:
         self._cleanup_request()
         raise
     except:
         ThreadLocalODMSession.close_all()
         ContextualODMSession.close_all(self._context_func())
         raise
Пример #2
0
 def __call__(self, environ, start_response):
     try:
         result = self.app(environ, start_response)
         if isinstance(result, list):
             self._cleanup_request()
             return result
         else:
             return self._cleanup_iterator(result)
     except self.flush_on_errors as exc:
         self._cleanup_request()
         raise
     except:
         ThreadLocalODMSession.close_all()
         ContextualODMSession.close_all(self._context_func())
         raise
Пример #3
0
 def _cleanup_request(self):
     context = self._context_func()
     ThreadLocalODMSession.flush_all()
     ContextualODMSession.flush_all(context)
     ThreadLocalODMSession.close_all()
     ContextualODMSession.close_all(context)
Пример #4
0
 def _cleanup_request(self):
     context = self._context_func()
     ThreadLocalODMSession.flush_all()
     ContextualODMSession.flush_all(context)
     ThreadLocalODMSession.close_all()
     ContextualODMSession.close_all(context)
Пример #5
0
        self._context_func = context_func or (lambda: None)

    def __call__(self, environ, start_response):
        try:
            result = self.app(environ, start_response)
            if isinstance(result, list):
                self._cleanup_request()
                return result
            else:
                return self._cleanup_iterator(result)
        except self.flush_on_errors, exc:
            self._cleanup_request()
            raise
        except:
            ThreadLocalODMSession.close_all()
            ContextualODMSession.close_all(self._context_func())
            raise

    def _cleanup_request(self):
        context = self._context_func()
        ThreadLocalODMSession.flush_all()
        ContextualODMSession.flush_all(context)
        ThreadLocalODMSession.close_all()
        ContextualODMSession.close_all(context)

    def _cleanup_iterator(self, result):
        for x in result:
            yield x
        self._cleanup_request()

Пример #6
0
        self._context_func = context_func or (lambda:None)

    def __call__(self, environ, start_response):
        try:
            result = self.app(environ, start_response)
            if isinstance(result, list):
                self._cleanup_request()
                return result
            else:
                return self._cleanup_iterator(result)
        except self.flush_on_errors, exc:
            self._cleanup_request()
            raise
        except:
            ThreadLocalODMSession.close_all()
            ContextualODMSession.close_all(self._context_func())
            raise

    def _cleanup_request(self):
        context = self._context_func()
        ThreadLocalODMSession.flush_all()
        ContextualODMSession.flush_all(context)
        ThreadLocalODMSession.close_all()
        ContextualODMSession.close_all(context)

    def _cleanup_iterator(self, result):
        for x in result:
            yield x
        self._cleanup_request()