# make sure notify events are set redis.config_set('notify-keyspace-events', 'Klgx') break except ConnectionError as e: retry += 1 logger.warn("cannot connect to redis DB - retrying (%d)" % retry) time.sleep(1) assert retry < 10, "Cannot connect to redis DB - aborting" services, base_config = config.load_services(cfg.get('default', 'config_dir')) for service in services: # remove busy state from resources for key in redis.keys('busy:%s:*' % service): redis.delete(key) # remove reserved state from resources for key in redis.keys('reserved:%s:*' % service): redis.delete(key) # remove queued tasks on service for key in redis.keys('queued:%s' % service): redis.delete(key) # On startup, add all active tasks in the work queue or service queue for task_id in task.list_active(redis, service): with redis.acquire_lock(task_id): status = redis.hget('task:'+task_id, 'status') if status == 'queued' or status == 'allocating' or status == 'allocated': task.service_queue(redis, task_id, redis.hget('task:'+task_id, 'service')) task.set_status(redis, 'task:'+task_id, 'queued')
logger = logging.getLogger() redis_password = None if cfg.has_option('redis', 'password'): redis_password = cfg.get('redis', 'password') redis = RedisDatabase(cfg.get('redis', 'host'), cfg.getint('redis', 'port'), cfg.get('redis', 'db'), redis_password) # make sure notify events are set redis.config_set('notify-keyspace-events', 'Klgx') services, base_config = config.load_services(cfg.get('default', 'config_dir')) # remove busy state from resources for key in redis.keys('busy:*'): redis.delete(key) # remove reserved state from resources for key in redis.keys('reserved:*'): redis.delete(key) # On startup, add all active tasks in the work queue. for task_id in task.list_active(redis): with redis.acquire_lock(task_id): status = redis.hget('task:' + task_id, 'status') if status == 'queue' or status == 'allocating' or status == 'allocated': task.service_queue(redis, task_id, redis.hget('task:' + task_id, 'service')) task.set_status(redis, 'task:' + task_id, 'queued') else: task.work_queue(redis, task_id)