org.apache.storm.trident.spout

## Interface IPartitionedTridentSpout.Emitter<PartitionsT,PartitionT extends ISpoutPartition,X>

- All Known Implementing Classes:
    KafkaTridentTransactionalSpoutEmitter, TransactionalTridentEventHubEmitter
  Enclosing interface:
    IPartitionedTridentSpout<PartitionsT,PartitionT extends ISpoutPartition,T>

      public static interface IPartitionedTridentSpout.Emitter<PartitionsT,PartitionT extends ISpoutPartition,X>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `void` | `emitPartitionBatch(TransactionAttempt tx, TridentCollector collector, PartitionT partition, X partitionMeta)` Emit a batch of tuples for a partition/transaction that has been emitted before, using the metadata created when it was first emitted.
    `X` | `emitPartitionBatchNew(TransactionAttempt tx, TridentCollector collector, PartitionT partition, X lastPartitionMeta)` Emit a batch of tuples for a partition/transaction that’s never been emitted before.
    `List<PartitionT>` | `getOrderedPartitions(PartitionsT allPartitionInfo)` Sorts given partition info to produce an ordered list of partitions.
    `default List<PartitionT>` | `getPartitionsForTask(int taskId, int numTasks, List<PartitionT> allPartitionInfoSorted)` Get the partitions assigned to the given task.
    `void` | `refreshPartitions(List<PartitionT> partitionResponsibilities)` This method is called when this task is responsible for a new set of partitions.

- - ### Method Detail

    - #### getOrderedPartitions

          List<PartitionT> getOrderedPartitions(PartitionsT allPartitionInfo)

      Sorts given partition info to produce an ordered list of partitions.

      Parameters:
        `allPartitionInfo` - The partition info for all partitions being processed by all spout tasks
      Returns:
        sorted list of partitions being processed by all the tasks. The ordering must be consistent for all tasks.

    - #### emitPartitionBatchNew

          X emitPartitionBatchNew(TransactionAttempt tx,
                                  TridentCollector collector,
                                  PartitionT partition,
                                  X lastPartitionMeta)

      Emit a batch of tuples for a partition/transaction that’s never been emitted before. Return the metadata that can be used to reconstruct this partition/batch in the future.

    - #### refreshPartitions

          void refreshPartitions(List<PartitionT> partitionResponsibilities)

      This method is called when this task is responsible for a new set of partitions. Should be used to manage things like connections to brokers.

    - #### emitPartitionBatch

          void emitPartitionBatch(TransactionAttempt tx,
                                  TridentCollector collector,
                                  PartitionT partition,
                                  X partitionMeta)

      Emit a batch of tuples for a partition/transaction that has been emitted before, using the metadata created when it was first emitted.

    - #### getPartitionsForTask

          default List<PartitionT> getPartitionsForTask(int taskId,
                                                        int numTasks,
                                                        List<PartitionT> allPartitionInfoSorted)

      Get the partitions assigned to the given task.

      Parameters:
        `taskId` - The id of the task
        `numTasks` - The number of tasks for the spout
        `allPartitionInfoSorted` - The partition info of all partitions being processed by all spout tasks, sorted according to `getOrderedPartitions(java.lang.Object)`
      Returns:
        The list of partitions that are to be processed by the task with `taskId`

    - #### close

          void close()

Copyright © 2021 The Apache Software Foundation. All rights reserved.