Class BatchSourceExecutor<T>

java.lang.Object
org.apache.pulsar.functions.source.batch.BatchSourceExecutor<T>
All Implemented Interfaces:
AutoCloseable, org.apache.pulsar.io.core.Source<T>

public class BatchSourceExecutor<T> extends Object implements org.apache.pulsar.io.core.Source<T>
BatchSourceExecutor wraps BatchSource as Source. Thus from Pulsar IO perspective, it is running a regular streaming source. The BatchSourceExecutor orchestrates the lifecycle of BatchSource. The current implementation uses an intermediate topic between the discovery process and the actual batchsource instances. The Discovery is run on 0th instance. Any tasks discovered during the discover are written to the intermediate topic. All the instances consume tasks from this intermediate topic using a shared subscription.
  • Constructor Details

    • BatchSourceExecutor

      public BatchSourceExecutor()
  • Method Details

    • open

      public void open(Map<String,Object> config, org.apache.pulsar.io.core.SourceContext sourceContext) throws Exception
      Specified by:
      open in interface org.apache.pulsar.io.core.Source<T>
      Throws:
      Exception
    • read

      public org.apache.pulsar.functions.api.Record<T> read() throws Exception
      Specified by:
      read in interface org.apache.pulsar.io.core.Source<T>
      Throws:
      Exception
    • close

      public void close() throws Exception
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception