diff --git a/swh/scheduler/celery_backend/config.py b/swh/scheduler/celery_backend/config.py --- a/swh/scheduler/celery_backend/config.py +++ b/swh/scheduler/celery_backend/config.py @@ -85,7 +85,9 @@ class TaskRouter: """Route tasks according to the task_queue attribute in the task class""" def route_for_task(self, task, args=None, kwargs=None): - task_class = app.tasks[task] + task_class = app.tasks.get(task) + if task_class is None: + return {'queue': 'auto_queue_for_%s' % task} if hasattr(task_class, 'task_queue'): return {'queue': task_class.task_queue} return None diff --git a/swh/scheduler/celery_backend/runner.py b/swh/scheduler/celery_backend/runner.py --- a/swh/scheduler/celery_backend/runner.py +++ b/swh/scheduler/celery_backend/runner.py @@ -77,9 +77,9 @@ args = task['arguments']['args'] kwargs = task['arguments']['kwargs'] - celery_task = app.tasks[ - task_types[task['type']]['backend_name'] - ].s(*args, **kwargs) + celery_task = app.send_task( + task_types[task['type']]['backend_name'], + args=args, kwargs=kwargs) celery_tasks.append(celery_task)