コード例 #1
0
    def connect_if_not_connected(cls):
        """Connect to Celery if not already connected, do it safely as we have concurrent server"""
        if cls._connected:
            return

        with cls._setup_lock:
            if not cls._connected:
                # We do not have to have result backend on server since we are just pushing tasks to message queue
                init_celery(result_backend=False)
コード例 #2
0
def construct_analyses_report(ecosystem, from_date=None, to_date=None):
    """Construct analyses state report.
    
    :param ecosystem: name of the ecosystem
    :param from_date: datetime limitation
    :type from_date: datetime.datetime
    :param to_date: datetime limitation
    :type to_date: datetime.datetime
    :return: a dict describing the current system state
    :rtype: dict
    """
    report = {
        'report': {},
        'from_date': str(from_date) if from_date else None,
        'to_date': str(to_date) if to_date else None,
        'now': str(datetime.now())
    }

    # TODO: init only Selinon
    # there is required only Selinon configuration, we don't need to connect to queues,
    # but let's stick with this for now
    init_celery(result_backend=False)
    db = StoragePool.get_connected_storage('BayesianPostgres')

    finished_analyses = _get_finished_analyses_count(db, ecosystem, from_date,
                                                     to_date)
    unfinished_analyses = _get_unfinished_analyses_count(
        db, ecosystem, from_date, to_date)

    report['report']['ecosystem'] = ecosystem
    report['report']['analyses'] = finished_analyses + unfinished_analyses
    report['report']['analyses_finished'] = finished_analyses
    report['report']['analyses_unfinished'] = unfinished_analyses
    report['report'][
        'analyses_finished_unique'] = _get_unique_finished_analyses_count(
            db, ecosystem, from_date, to_date)
    report['report']['analyses_unique'] = _get_unique_analyses_count(
        db, ecosystem, from_date, to_date)
    report['report']['packages'] = _get_packages_count(db, ecosystem,
                                                       from_date, to_date)
    report['report']['versions'] = _get_versions_count(db, ecosystem,
                                                       from_date, to_date)

    return report
コード例 #3
0
#!/usr/bin/env python

import logging
from celery import Celery
from cucoslib.setup_celery import init_celery

# remove too verbose logs from third-party libraries
logging.getLogger('boto').setLevel(logging.WARNING)
logging.getLogger('boto3').setLevel(logging.WARNING)
logging.getLogger('botocore').setLevel(logging.WARNING)

app = Celery('tasks')
init_celery(app)
コード例 #4
0
 def _init_celery(self):
     """ Initialize celery and connect to the broker """
     if not self._initialized_celery:
         init_celery(result_backend=False)
         self._initialized_celery = True