def newf(*args, **kwargs): backend = get_backend() was_patched = backend._patched get_backend().patch() #since this function takes all keyword arguments, #we will pass only the ones the function below accepts, just as celery does supported_keys = fun_takes_kwargs(f, kwargs) new_kwargs = dict((key, val) for key, val in kwargs.items() if key in supported_keys) try: ret = f(*args, **new_kwargs) finally: local.clear() if not was_patched: get_backend().unpatch() return ret
def newf(*args, **kwargs): backend = get_backend() was_patched = backend._patched get_backend().patch() # since this function takes all keyword arguments, # we will pass only the ones the function below accepts, # just as celery does supported_keys = fun_takes_kwargs(f, kwargs) new_kwargs = dict((key, val) for key, val in kwargs.items() if key in supported_keys) try: ret = f(*args, **new_kwargs) finally: local.clear() if not was_patched: get_backend().unpatch() return ret
def postrun_handler(*args, **kwargs): """Celery postrun handler. Unpatches and clears the localstore.""" unpatch() local.clear()
def task_postrun_handler(*args, **kwargs): """ After each task is ran, the LocalStore cache (similar to threadlocals) is cleared, as is the case with views (instead of celery tasks). """ local.clear()