def run(**kwargs): params = get_params(kwargs) configure_logging(params) if only_instance_running(params): logging.info('Starting execution.') write_pid_file(params) # create lock to avoid concurrent executions current_exec_time = utcnow() config = load_config(params['config_path']) config['current_exec_time'] = current_exec_time config['query_folder'] = params['query_folder'] config['output_folder'] = params['output_folder'] config['reruns'], rerun_files = read_reruns(params['query_folder']) reader = Reader(config) selector = Selector(reader, config) executor = Executor(selector, config) writer = Writer(executor, config, configure_graphite(config)) writer.run() delete_reruns(rerun_files) # delete rerun files that have been processed delete_pid_file(params) # free lock for other instances to execute logging.info('Execution complete.') else: logging.warning('Another instance is already running. Exiting.')
def run(**kwargs): params = get_params(kwargs) configure_logging(params) if only_instance_running(params): logging.info('Starting execution.') write_pid_file(params) # create lock to avoid concurrent executions current_exec_time = utcnow() last_exec_time = replace_exec_time(current_exec_time, params['history_path']) if 'config' in params: config = params['config'] else: config = load_config(params['config_path']) config['current_exec_time'] = current_exec_time config['last_exec_time'] = last_exec_time config['query_folder'] = params['query_folder'] config['output_folder'] = params['output_folder'] config['wikis_path'] = params['wikis_path'] reader = Reader(config) selector = Selector(reader, config) executor = Executor(selector, config) writer = Writer(executor, config) writer.run() delete_pid_file(params) # free lock for other instances to execute logging.info('Execution complete.') else: logging.warning('Another instance is already running. Exiting.')