Package org.apache.storm.trident.spout
Interface IPartitionedTridentSpout.Emitter<PartitionsT,PartitionT extends ISpoutPartition,X>
- All Known Implementing Classes:
KafkaTridentTransactionalSpoutEmitter
- Enclosing interface:
- IPartitionedTridentSpout<PartitionsT,
PartitionT extends ISpoutPartition, T>
public static interface IPartitionedTridentSpout.Emitter<PartitionsT,PartitionT extends ISpoutPartition,X>
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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.emitPartitionBatchNew
(TransactionAttempt tx, TridentCollector collector, PartitionT partition, X lastPartitionMeta) Emit a batch of tuples for a partition/transaction that's never been emitted before.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 Details
-
getOrderedPartitions
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
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 tasknumTasks
- The number of tasks for the spoutallPartitionInfoSorted
- The partition info of all partitions being processed by all spout tasks, sorted according togetOrderedPartitions(java.lang.Object)
- Returns:
- The list of partitions that are to be processed by the task with
taskId
-
close
void close()
-