Пример #1
0
    def __init__(self, node, niu, job_processor, db):
        self.node = node
        self.niu = niu
        self.session = elliptics.Session(self.node)
        wait_timeout = config.get('elliptics', {}).get('wait_timeout', 5)
        self.session.set_timeout(wait_timeout)

        self.service_metakey = str(
            self.session.transform(keys.SYMMETRIC_GROUPS_KEY))

        try:
            keys_db_uri = config['metadata']['cache']['db']
        except KeyError:
            logger.error('Config parameter metadata.cache.db is required '
                         'for cache manager')
            raise
        self.keys_db = Collection(db[keys_db_uri], 'keys')
        self.distributor = CacheDistributor(
            self.node, self.keys_db, job_processor)

        self.top_keys = {}

        self.__tq = timed_queue.TimedQueue()

        self.nodes_update()
        self.update_cache_groups()

        self.top_update_timer = periodic_timer(
            seconds=CACHE_CFG.get('top_update_period', 1800))

        self.__tq.add_task_at(
            CacheManager.MONITOR_TOP_STATS,
            self.top_update_timer.next(),
            self.monitor_top_stats)
Пример #2
0
    def __init__(self, node, db, niu, minions):
        logger.info('Starting JobProcessor')
        self.session = elliptics.Session(node)
        wait_timeout = config.get('elliptics', {}).get('wait_timeout', None) or config.get('wait_timeout', 5)
        self.session.set_timeout(wait_timeout)
        self.meta_session = node.meta_session
        self.minions = minions
        self.node_info_updater = niu
        self.planner = None

        self.__tq = timed_queue.TimedQueue()

        if config['metadata'].get('jobs', {}).get('db'):
            self.jobs_timer = periodic_timer(seconds=JOB_CONFIG.get('execute_period', 60))
            self.collection = Collection(db[config['metadata']['jobs']['db']], 'jobs')
            self.downtimes = Collection(db[config['metadata']['jobs']['db']], 'downtimes')
            self.__tq.add_task_at(self.JOBS_EXECUTE,
                self.jobs_timer.next(), self._execute_jobs)
Пример #3
0
    def __init__(self, job_finder, node, db, niu, minions):
        logger.info('Starting JobProcessor')
        self.job_finder = job_finder
        self.session = elliptics.Session(node)
        wait_timeout = config.get('elliptics', {}).get('wait_timeout', None) or \
            config.get('wait_timeout', 5)
        self.session.set_timeout(wait_timeout)
        self.meta_session = node.meta_session
        self.minions = minions
        self.node_info_updater = niu
        self.planner = None

        self.__tq = timed_queue.TimedQueue()

        self.jobs_timer = periodic_timer(
            seconds=JOB_CONFIG.get('execute_period', 60))
        self.downtimes = Collection(db[config['metadata']['jobs']['db']],
                                    'downtimes')
        self.__tq.add_task_at(self.JOBS_EXECUTE, self.jobs_timer.next(),
                              self._execute_jobs)
Пример #4
0
 def setup_client(self):
     "Setup the Bitcoin RPC client."
     self.client = bitcoin.Client()
     self.client.on_transaction(self.update_balance)
     timer.periodic_timer(2000, self.client.poll)