Exemple #1
0
# Based on code by Kong Luoxing 2014

import datetime

from celery.beat import Scheduler, ScheduleEntry
from celery import current_app
import celery.schedules

from pyfaf.storage.task import PeriodicTask
from pyfaf.storage import DatabaseFactory

db_factory = DatabaseFactory()


class DBScheduleEntry(ScheduleEntry, object):
    def __init__(self, db_task):
        super(DBScheduleEntry, self).__init__()
        self.db_task = db_task
        self.app = current_app._get_current_object() #pylint: disable=protected-access
        self.name = db_task.name
        self.task = db_task.task
        self.enabled = db_task.enabled

        self.schedule = celery.schedules.crontab(minute=db_task.crontab_minute,
                                                 hour=db_task.crontab_hour,
                                                 day_of_week=db_task.crontab_day_of_week,
                                                 day_of_month=db_task.crontab_day_of_month,
                                                 month_of_year=db_task.crontab_month_of_year)

        self.args = db_task.args
        self.kwargs = db_task.kwargs
Exemple #2
0
from celery import Celery
from celery.signals import task_postrun
from pyfaf.actions import actions
from pyfaf.config import config
from pyfaf.common import get_env_or_config
from pyfaf.storage import DatabaseFactory, TaskResult
from pyfaf.utils.contextmanager import captured_output_combined

celery_app = Celery("pyfaf_tasks",
                    broker=get_env_or_config("celery_tasks.broker",
                                             "RDSBROKER", ""),
                    backend=get_env_or_config("celery_tasks.backend",
                                              "RDSBACKEND", ""))

db_factory = DatabaseFactory(autocommit=True)


class ActionError(Exception):
    def __init__(self, output) -> None:
        self.output = output
        Exception.__init__(self, output)

    def __str__(self) -> str:
        return self.output


@task_postrun.connect
def task_postrun_handler(_sender=None,
                         task_id=None,
                         task=None,