Class AbstractAsyncStateUdfStreamOperator<OUT,​F extends Function>

    • Field Detail

      • userFunction

        protected final F extends Function userFunction
        The user function.
    • Constructor Detail

      • AbstractAsyncStateUdfStreamOperator

        public AbstractAsyncStateUdfStreamOperator​(F userFunction)
    • Method Detail

      • getUserFunction

        public F getUserFunction()
        Gets the user function executed in this operator.
        Specified by:
        getUserFunction in interface UserFunctionProvider<OUT>
        Returns:
        The user function of this operator.
      • open

        public void open()
                  throws Exception
        Description copied from class: AbstractStreamOperator
        This method is called immediately before any elements are processed, it should contain the operator's initialization logic, e.g. state initialization.

        The default implementation does nothing.

        Specified by:
        open in interface StreamOperator<OUT>
        Overrides:
        open in class AbstractStreamOperator<OUT>
        Throws:
        Exception - An exception in this method causes the operator to fail.
      • finish

        public void finish()
                    throws Exception
        Description copied from interface: StreamOperator
        This method is called at the end of data processing.

        The method is expected to flush all remaining buffered data. Exceptions during this flushing of buffered data should be propagated, in order to cause the operation to be recognized as failed, because the last data items are not processed properly.

        After this method is called, no more records can be produced for the downstream operators.

        WARNING: It is not safe to use this method to commit any transactions or other side effects! You can use this method to flush any buffered data that can later on be committed e.g. in a CheckpointListener.notifyCheckpointComplete(long).

        NOTE:This method does not need to close any resources. You should release external resources in the StreamOperator.close() method.

        Specified by:
        finish in interface StreamOperator<OUT>
        Overrides:
        finish in class AbstractAsyncStateStreamOperator<OUT>
        Throws:
        Exception - An exception in this method causes the operator to fail.
      • close

        public void close()
                   throws Exception
        Description copied from interface: StreamOperator
        This method is called at the very end of the operator's life, both in the case of a successful completion of the operation, and in the case of a failure and canceling.

        This method is expected to make a thorough effort to release all resources that the operator has acquired.

        NOTE:It can not emit any records! If you need to emit records at the end of processing, do so in the StreamOperator.finish() method.

        Specified by:
        close in interface StreamOperator<OUT>
        Overrides:
        close in class AbstractAsyncStateStreamOperator<OUT>
        Throws:
        Exception
      • notifyCheckpointComplete

        public void notifyCheckpointComplete​(long checkpointId)
                                      throws Exception
        Description copied from interface: CheckpointListener
        Notifies the listener that the checkpoint with the given checkpointId completed and was committed.

        These notifications are "best effort", meaning they can sometimes be skipped. To behave properly, implementers need to follow the "Checkpoint Subsuming Contract". Please see the class-level JavaDocs for details.

        Please note that checkpoints may generally overlap, so you cannot assume that the notifyCheckpointComplete() call is always for the latest prior checkpoint (or snapshot) that was taken on the function/operator implementing this interface. It might be for a checkpoint that was triggered earlier. Implementing the "Checkpoint Subsuming Contract" (see above) properly handles this situation correctly as well.

        Please note that throwing exceptions from this method will not cause the completed checkpoint to be revoked. Throwing exceptions will typically cause task/job failure and trigger recovery.

        Specified by:
        notifyCheckpointComplete in interface CheckpointListener
        Overrides:
        notifyCheckpointComplete in class AbstractStreamOperator<OUT>
        Parameters:
        checkpointId - The ID of the checkpoint that has been completed.
        Throws:
        Exception - This method can propagate exceptions, which leads to a failure/recovery for the task. Note that this will NOT lead to the checkpoint being revoked.
      • notifyCheckpointAborted

        public void notifyCheckpointAborted​(long checkpointId)
                                     throws Exception
        Description copied from interface: CheckpointListener
        This method is called as a notification once a distributed checkpoint has been aborted.

        Important: The fact that a checkpoint has been aborted does NOT mean that the data and artifacts produced between the previous checkpoint and the aborted checkpoint are to be discarded. The expected behavior is as if this checkpoint was never triggered in the first place, and the next successful checkpoint simply covers a longer time span. See the "Checkpoint Subsuming Contract" in the class-level JavaDocs for details.

        These notifications are "best effort", meaning they can sometimes be skipped.

        This method is very rarely necessary to implement. The "best effort" guarantee, together with the fact that this method should not result in discarding any data (per the "Checkpoint Subsuming Contract") means it is mainly useful for earlier cleanups of auxiliary resources. One example is to pro-actively clear a local per-checkpoint state cache upon checkpoint failure.

        Specified by:
        notifyCheckpointAborted in interface CheckpointListener
        Overrides:
        notifyCheckpointAborted in class AbstractStreamOperator<OUT>
        Parameters:
        checkpointId - The ID of the checkpoint that has been aborted.
        Throws:
        Exception - This method can propagate exceptions, which leads to a failure/recovery for the task or job.
      • setOutputType

        public void setOutputType​(TypeInformation<OUT> outTypeInfo,
                                  ExecutionConfig executionConfig)
        Description copied from interface: OutputTypeConfigurable
        Is called by the org.apache.flink.streaming.api.graph.StreamGraph#addOperator(Integer, String, StreamOperator, TypeInformation, TypeInformation, String) method when the org.apache.flink.streaming.api.graph.StreamGraph is generated. The method is called with the output TypeInformation which is also used for the org.apache.flink.streaming.runtime.tasks.StreamTask output serializer.
        Specified by:
        setOutputType in interface OutputTypeConfigurable<OUT>
        Parameters:
        outTypeInfo - Output type information of the org.apache.flink.streaming.runtime.tasks.StreamTask
        executionConfig - Execution configuration