public void cleanPipeReceiverDirs() {
    String[] pipeReceiverFileDirs =
        IoTDBDescriptor.getInstance().getConfig().getPipeReceiverFileDirs();
    Arrays.stream(pipeReceiverFileDirs)
        .map(File::new)
        .forEach(IoTDBReceiverAgent::cleanPipeReceiverDir);
    // consensus
    String[] pipeConsensusReceiverFileDirs =
        IoTDBDescriptor.getInstance().getConfig().getIotConsensusV2ReceiverFileDirs();
    Arrays.stream(pipeConsensusReceiverFileDirs)
        .map(File::new)
        .forEach(IoTDBReceiverAgent::cleanPipeReceiverDir);
  }
{@link PipeDataNodeReceiverAgent} is the entry point of all pipe receivers' logic.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/receiver/PipeDataNodeReceiverAgent.java