def __call__(self, *args, **kwargs): # Get bound Task.__call__ # http://stackoverflow.com/a/1015405/315168 underlying = Task.__call__.__get__(self, Task) if self.request.is_eager: return self.exec_eager(*args, **kwargs) request = self.get_request() try: def handler(request): try: return underlying(*args, **kwargs) except Exception as e: logger.error("TransactionalTask task raised an exception %s", e) logger.exception(e) raise handler = tm_tween_factory(handler, request.registry) result = handler(request) finally: # TODO: Do we need closer? # pyramid_env["closer"]() pass return result
def __call__(self, *args, **kwargs): # Get bound Task.__call__ # http://stackoverflow.com/a/1015405/315168 underlying = Task.__call__.__get__(self, Task) if self.request.is_eager: return self.exec_eager(*args, **kwargs) request = self.get_request() try: def handler(request): try: return underlying(*args, **kwargs) except Exception as e: logger.error( "TransactionalTask task raised an exception %s", e) logger.exception(e) raise handler = tm_tween_factory(handler, request.registry) result = handler(request) finally: # TODO: Do we need closer? # pyramid_env["closer"]() pass return result
def __call__(self, *args, **kwargs): pyramid_env = self.get_env() try: # Get bound Task.__call__ # http://stackoverflow.com/a/1015405/315168 # We need to pass RequesetAwareTask super() because of transaction tween injection underlying = Task.__call__.__get__(self, Task) def handler(request): try: return underlying(request, *args, **kwargs) except Exception as e: logger.error("TransactionalTask task raised an exception %s", e) logger.exception(e) raise handler = tm_tween_factory(handler, pyramid_env["registry"]) result = handler(pyramid_env["request"]) finally: pyramid_env["closer"]() return result
def _callFUT(self, handler=None, registry=None, request=None, txn=None): if handler is None: def handler(request): return self.response if registry is None: registry = self.registry if request is None: request = self.request if txn is None: txn = self.txn from pyramid_tm import tm_tween_factory factory = tm_tween_factory(handler, registry, txn) return factory(request)
def _callFUT(self, handler=None, registry=None, request=None, txn=None): if handler is None: def handler(request): return self.response if registry is None: registry = self.registry if request is None: request = self.request if txn is None: txn = self.txn request.tm = txn from pyramid_tm import tm_tween_factory factory = tm_tween_factory(handler, registry) return factory(request)
def handler_inner(*args, **kwargs): from alchemist import scheduler pyramid_env = scripting.prepare(registry=scheduler.pyramid_registry) try: def handler_func(request): return func(request, *args, **kwargs) handler = tm_tween_factory(handler_func, pyramid_env["registry"]) result = handler(pyramid_env["request"]) return result except Exception: logging.error('Error in handling scheduled task', exc_info=1) finally: pyramid_env["closer"]()
def __call__(self, *args, **kwargs): pyramid_env = self.get_env() try: # Get bound Task.__call__ # http://stackoverflow.com/a/1015405/315168 underlying = Task.__call__.__get__(self, Task) def handler(request): underlying(request, *args, **kwargs) handler = tm_tween_factory(handler, pyramid_env["registry"]) result = handler(pyramid_env["request"]) finally: pyramid_env["closer"]() return result
def __call__(self, *args, **kwargs): registry = self.app.pyramid_config.registry pyramid_env = scripting.prepare(registry=registry) try: underlying = super().__call__ if getattr(self, "pyramid", True): def handler(request): return underlying(request, *args, **kwargs) else: def handler(request): return underlying(*args, **kwargs) handler = tm_tween_factory(handler, pyramid_env["registry"]) result = handler(pyramid_env["request"]) finally: pyramid_env["closer"]() return result