# work_node = zoo.get_node(zk_process_path) # process_id = ''.join(work_node.split('_')[1:]) work_node = "process_" + process_id pl.set_log(log_path, process_id) flow = config.create_flow(process_id) redo_node = zk_process_path + "/" + work_node + "/" + "redo" redo_node_flag = zoo.check_exists(redo_node) if redo_node_flag is not None: redo_info, stat = zoo.get_node_value(redo_node) redo_info = bytes.decode(redo_info) if redo_info is not None: output_dirs = config.output_dirs logging.info("redo info %s" % redo_info) zk_redo = ZkRedo(redo_info, process_id, input_dir, output_dirs, bak_path) zk_redo.do_task() zoo.delete_node(redo_node) while 1: flow = config.create_flow(process_id) file_num = config.get_file() if file_num == 0: logging.info("no file in input dir,wait") time.sleep(5) if ReceiveSignal.EXIT_FLAG: sys.exit() continue flow.work(zoo, redo_node) if ReceiveSignal.EXIT_FLAG: sys.exit()