From 634976440dc3e9f3cb97d97680ed3ce50092c0e4 Mon Sep 17 00:00:00 2001 From: Daniel Debonzi Date: Wed, 15 Aug 2018 15:12:20 -0300 Subject: [PATCH] Raises proper exception if target task is not found. --- crossover/__init__.py | 10 +++++++--- setup.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crossover/__init__.py b/crossover/__init__.py index c8dda9f..62bdfec 100644 --- a/crossover/__init__.py +++ b/crossover/__init__.py @@ -11,16 +11,20 @@ CROSSOVER_ROUTER_NAME = "__crossover_router_dispatch__" +class TaskNotFoundError(Exception): + """ Raised when requested task is not found.""" + class CrossoverRouter(celery.Task): + CELERY_4_VERSION = celery.version_info_t(4, 0, 0, '', '') name = CROSSOVER_ROUTER_NAME def run(self, *args, **kwargs): + app = celery.current_app if celery.VERSION < self.CELERY_4_VERSION else self.app task_name = kwargs.pop('task_name') logger.debug('Got Crossover task: {}'.format(task_name)) - _task = celery.current_app.tasks.get(task_name) + _task = app.tasks.get(task_name) if not _task: - logger.error('Task {0} not found!'.format(task_name)) - return + raise TaskNotFoundError('Task "{0}" not found!'.format(task_name)) return _task.delay(*args, **kwargs) diff --git a/setup.py b/setup.py index 32e1268..02d9a76 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ setup(name='celery-crossover', - version='1.1.8', + version='1.1.9', description='Celery Crossover aims to make it really easy to execute tasks in another service.', author='Daniel Debonzi', author_email='debonzi@gmail.com',