protected Map<Integer, TPushPipeMetaResp> pushMultiPipeMetaToDataNodes(
      List<String> pipeNames, ConfigNodeProcedureEnv env) throws IOException {
    final List<ByteBuffer> pipeMetaBinaryList = new ArrayList<>();
    for (String pipeName : pipeNames) {
      PipeMeta pipeMeta = pipeTaskInfo.get().getPipeMetaByPipeName(pipeName);
      if (pipeMeta == null) {
        LOGGER.warn("Pipe {} not found in PipeTaskInfo, can not push its meta.", pipeName);
        continue;
      }
      pipeMetaBinaryList.add(copyAndFilterOutNonWorkingDataRegionPipeTasks(pipeMeta).serialize());
    }

    return env.pushMultiPipeMetaToDataNodes(pipeMetaBinaryList);
  }
Pushing multiple pipeMetas to all the dataNodes, forcing an update to the pipes' runtime state.

@param pipeNames pipe names of the pipes to push
@param env ConfigNodeProcedureEnv
@return The responseMap after pushing pipe meta
@throws IOException Exception when Serializing to byte buffer
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/subscription/subscription/AbstractOperateSubscriptionAndPipeProcedure.java