Esempio n. 1
0
    if redo_info is not None:
        zk_redo = ZkRedo(redo_info, process_id, input_path, output_path, bak_path)
        filename_pool_str = zk_redo.do_task()
        file_date, prov, zk_seq = filename_pool_str.split(",")
        my_flow.work(file_date, zk_seq, prov, filename_part)

while 1:
    redo_info = []
    current_time = datetime.datetime.now().strftime('%Y%m%d-%H-%M-%S')
    merge_date, hh, mi, ss = current_time.split('-')
    # 获取当前系统序号
    sequence = (int(hh) * 3600 + int(mi) * 60 + int(ss)) / merge_interval - 1
    sequence = '%03d' % int(sequence)
    sys_sequence = merge_date + str(sequence)
    logging.info('get system sequence:%s' % sys_sequence)
    filename_seq = zoo.zk_get_merge_fn(process_path, work_node, sys_sequence, zk_filenamepool)

    if filename_seq == 0:
        # zk_seq > cur_seq,未到合并时间点
        time.sleep(10)
        continue
    if filename_seq == 1:
        logging.info("get filename_pool failed, try again")
        continue
    file_date, zk_seq, prov = filename_seq.split(".")
    filename_pool = ",".join([file_date, zk_seq, prov])
    redo_info.append("filenamepool:" + filename_pool)
    # zoo.create_node(redo_node)
    # zoo.set_node_value(redo_node, ";".join(redo_info).encode("utf-8"))
    logging.info("match expr:%s" % (match_expr + prov))
    my_flow.get_file(match_expr + prov)