diff --git a/swh/scheduler/utils.py b/swh/scheduler/utils.py index 722feba..bf848c2 100644 --- a/swh/scheduler/utils.py +++ b/swh/scheduler/utils.py @@ -1,53 +1,71 @@ # Copyright (C) 2017-2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information from datetime import datetime, timezone def get_task(task_name): """Retrieve task object in our application instance by its fully qualified python name. Args: task_name (str): task's name (e.g swh.loader.git.tasks.LoadDiskGitRepository) Returns: Instance of task """ from swh.scheduler.celery_backend.config import app for module in app.conf.CELERY_IMPORTS: __import__(module) return app.tasks[task_name] -def create_oneshot_task_dict(type, *args, **kwargs): - """Create a oneshot task scheduled for as soon as possible. +def create_task_dict(type, policy, *args, **kwargs): + """Create a task with type and policy, scheduled for as soon as + possible. Args: type (str): Type of oneshot task as per swh-scheduler's db table task_type's column (Ex: origin-update-git, swh-deposit-archive-checks) + policy (str): oneshot or recurring policy Returns: Expected dictionary for the one-shot task scheduling api (swh.scheduler.backend.create_tasks) """ priority = None if 'priority' in kwargs: priority = kwargs.pop('priority') return { - 'policy': 'oneshot', + 'policy': policy, 'type': type, 'next_run': datetime.now(tz=timezone.utc), 'arguments': { 'args': args if args else [], 'kwargs': kwargs if kwargs else {}, }, 'priority': priority, } + + +def create_oneshot_task_dict(type, *args, **kwargs): + """Create a oneshot task scheduled for as soon as possible. + + Args: + type (str): Type of oneshot task as per swh-scheduler's db + table task_type's column (Ex: origin-update-git, + swh-deposit-archive-checks) + + Returns: + Expected dictionary for the one-shot task scheduling api + (swh.scheduler.backend.create_tasks) + + """ + return create_task_dict(type, 'oneshot', *args, **kwargs)