Package org.apache.heron.api.spout
Class SpoutOutputCollector
- java.lang.Object
-
- org.apache.heron.api.spout.SpoutOutputCollector
-
- All Implemented Interfaces:
ISpoutOutputCollector
public class SpoutOutputCollector extends Object implements ISpoutOutputCollector
This output collector exposes the API for emitting tuples from anIRichSpout
. The main difference between this output collector andOutputCollector
forIRichBolt
is that spouts can tag messages with ids so that they can be acked or failed later on. This is the Spout portion of Heron's API to guarantee that each message is fully processed at least once.
-
-
Constructor Summary
Constructors Constructor Description SpoutOutputCollector(ISpoutOutputCollector aDelegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<Integer>
emit(String streamId, List<Object> tuple)
Emits a tuple to the specified output stream with a null message id.List<Integer>
emit(String streamId, List<Object> tuple, Object messageId)
Emits a new tuple to the specified output stream with the given message ID.List<Integer>
emit(List<Object> tuple)
Emits a tuple to the default output stream with a null message id.List<Integer>
emit(List<Object> tuple, Object messageId)
Emits a new tuple to the default output stream with the given message ID.void
emitDirect(int taskId, String streamId, List<Object> tuple)
Emits a tuple to the specified task on the specified output stream.void
emitDirect(int taskId, String streamId, List<Object> tuple, Object messageId)
Emits a tuple to the specified task on the specified output stream.void
emitDirect(int taskId, List<Object> tuple)
Emits a tuple to the specified task on the default output stream.void
emitDirect(int taskId, List<Object> tuple, Object messageId)
Emits a tuple to the specified task on the default output stream.void
reportError(Throwable error)
-
-
-
Constructor Detail
-
SpoutOutputCollector
public SpoutOutputCollector(ISpoutOutputCollector aDelegate)
-
-
Method Detail
-
emit
public List<Integer> emit(String streamId, List<Object> tuple, Object messageId)
Emits a new tuple to the specified output stream with the given message ID. When Heron detects that this tuple has been fully processed, or has failed to be fully processed, the spout will receive an ack or fail callback respectively with the messageId as long as the messageId was not null. If the messageId was null, Heron will not track the tuple and no callback will be received. The emitted values must be immutable.- Specified by:
emit
in interfaceISpoutOutputCollector
- Returns:
- the list of task ids that this tuple was sent to
-
emit
public List<Integer> emit(List<Object> tuple, Object messageId)
Emits a new tuple to the default output stream with the given message ID. When Heron detects that this tuple has been fully processed, or has failed to be fully processed, the spout will receive an ack or fail callback respectively with the messageId as long as the messageId was not null. If the messageId was null, Heron will not track the tuple and no callback will be received. The emitted values must be immutable.- Returns:
- the list of task ids that this tuple was sent to
-
emit
public List<Integer> emit(List<Object> tuple)
Emits a tuple to the default output stream with a null message id. Heron will not track this message so ack and fail will never be called for this tuple. The emitted values must be immutable.
-
emit
public List<Integer> emit(String streamId, List<Object> tuple)
Emits a tuple to the specified output stream with a null message id. Heron will not track this message so ack and fail will never be called for this tuple. The emitted values must be immutable.
-
emitDirect
public void emitDirect(int taskId, String streamId, List<Object> tuple, Object messageId)
Emits a tuple to the specified task on the specified output stream. This output stream must have been declared as a direct stream, and the specified task must use a direct grouping on this stream to receive the message. The emitted values must be immutable.- Specified by:
emitDirect
in interfaceISpoutOutputCollector
-
emitDirect
public void emitDirect(int taskId, List<Object> tuple, Object messageId)
Emits a tuple to the specified task on the default output stream. This output stream must have been declared as a direct stream, and the specified task must use a direct grouping on this stream to receive the message. The emitted values must be immutable.
-
emitDirect
public void emitDirect(int taskId, String streamId, List<Object> tuple)
Emits a tuple to the specified task on the specified output stream. This output stream must have been declared as a direct stream, and the specified task must use a direct grouping on this stream to receive the message. The emitted values must be immutable.Because no message id is specified, Heron will not track this message so ack and fail will never be called for this tuple.
-
emitDirect
public void emitDirect(int taskId, List<Object> tuple)
Emits a tuple to the specified task on the default output stream. This output stream must have been declared as a direct stream, and the specified task must use a direct grouping on this stream to receive the message. The emitted values must be immutable.Because no message id is specified, Heron will not track this message so ack and fail will never be called for this tuple.
-
reportError
public void reportError(Throwable error)
- Specified by:
reportError
in interfaceISpoutOutputCollector
-
-