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)
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)
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)
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)