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
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
close()
Map<PartitionT,X>
emitBatchNew(TransactionAttempt tx, TridentCollector collector, Set<PartitionT> partitions, Map<PartitionT,X> lastPartitionMetaMap)
Emit a batch of tuples for the partitions 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
reEmitPartitionBatch(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.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.
-
emitBatchNew
Map<PartitionT,X> emitBatchNew(TransactionAttempt tx, TridentCollector collector, Set<PartitionT> partitions, Map<PartitionT,X> lastPartitionMetaMap)
Emit a batch of tuples for the partitions 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.
-
reEmitPartitionBatch
void reEmitPartitionBatch(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()
-
-