Class SpoutOutputCollectorImpl

  • All Implemented Interfaces:
    ISpoutOutputCollector

    public class SpoutOutputCollectorImpl
    extends SpoutOutputCollector
    This output collector exposes the API for emitting tuples from an IRichSpout. The main difference between this output collector and OutputCollector for IRichBolt is that spouts can tag messages with ids so that they can be acked or failed later on. This is the Spout portion of Storm's API to guarantee that each message is fully processed at least once.
    • Constructor Detail

      • SpoutOutputCollectorImpl

        public SpoutOutputCollectorImpl​(org.apache.heron.api.spout.SpoutOutputCollector delegate)
    • Method Detail

      • emit

        public List<Integer> emit​(String streamId,
                                  List<Object> tuple,
                                  Object messageId)
        Description copied from class: SpoutOutputCollector
        Emits a new tuple to the specified output stream with the given message ID. When Storm 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, Storm will not track the tuple and no callback will be received. The emitted values must be immutable.
        Specified by:
        emit in interface ISpoutOutputCollector
        Overrides:
        emit in class SpoutOutputCollector
        Returns:
        the list of task ids that this tuple was sent to
      • emit

        public List<Integer> emit​(List<Object> tuple,
                                  Object messageId)
        Description copied from class: SpoutOutputCollector
        Emits a new tuple to the default output stream with the given message ID. When Storm 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, Storm will not track the tuple and no callback will be received. The emitted values must be immutable.
        Overrides:
        emit in class SpoutOutputCollector
        Returns:
        the list of task ids that this tuple was sent to
      • emit

        public List<Integer> emit​(List<Object> tuple)
        Description copied from class: SpoutOutputCollector
        Emits a tuple to the default output stream with a null message id. Storm will not track this message so ack and fail will never be called for this tuple. The emitted values must be immutable.
        Overrides:
        emit in class SpoutOutputCollector
      • emit

        public List<Integer> emit​(String streamId,
                                  List<Object> tuple)
        Description copied from class: SpoutOutputCollector
        Emits a tuple to the specified output stream with a null message id. Storm will not track this message so ack and fail will never be called for this tuple. The emitted values must be immutable.
        Overrides:
        emit in class SpoutOutputCollector
      • emitDirect

        public void emitDirect​(int taskId,
                               String streamId,
                               List<Object> tuple,
                               Object messageId)
        Description copied from class: SpoutOutputCollector
        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 interface ISpoutOutputCollector
        Overrides:
        emitDirect in class SpoutOutputCollector
      • emitDirect

        public void emitDirect​(int taskId,
                               List<Object> tuple,
                               Object messageId)
        Description copied from class: SpoutOutputCollector
        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.
        Overrides:
        emitDirect in class SpoutOutputCollector
      • emitDirect

        public void emitDirect​(int taskId,
                               String streamId,
                               List<Object> tuple)
        Description copied from class: SpoutOutputCollector
        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, Storm will not track this message so ack and fail will never be called for this tuple.

        Overrides:
        emitDirect in class SpoutOutputCollector
      • emitDirect

        public void emitDirect​(int taskId,
                               List<Object> tuple)
        Description copied from class: SpoutOutputCollector
        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, Storm will not track this message so ack and fail will never be called for this tuple.

        Overrides:
        emitDirect in class SpoutOutputCollector