public void listenToHeartbeat(final boolean shouldPrintMessage) {
    dataRegionId2Assigner.forEach(
        (key, value) ->
            value.publishToAssign(
                PipeRealtimeEventFactory.createRealtimeEvent(key, shouldPrintMessage)));
  }
PipeInsertionEventListener is a singleton in each data node.

<p>It is used to listen to events from storage engine and publish them to pipe engine.

<p>2 kinds of events are extracted: 1. level-0 tsfile sealed event 2. insertion operation event

<p>All events extracted by this listener will be first published to different
PipeEventDataRegionAssigners (identified by data region id), and then PipeEventDataRegionAssigner
will filter events and assign them to different PipeRealtimeEventDataRegionExtractors.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/dataregion/realtime/listener/PipeInsertionDataNodeListener.java