Class SynchronousStepExecution<T>

  • Type Parameters:
    T - the type of the return value (may be Void)
    All Implemented Interfaces:
    Serializable

    public abstract class SynchronousStepExecution<T>
    extends StepExecution
    StepExecution that always executes synchronously. This API should be used for short-lived tasks that return almost instantly. To call legacy Jenkins APIs which are potentially long-running and interruptible yet offer no asynchronous mode (for example because they block on a remoting call) use SynchronousNonBlockingStepExecution. Also note that long-lived tasks which do not need to run within a Java method call should use the more general StepExecution.
    Author:
    Kohsuke Kawaguchi
    See Also:
    Serialized Form
    • Constructor Detail

      • SynchronousStepExecution

        protected SynchronousStepExecution​(@NonNull
                                           StepContext context)
    • Method Detail

      • run

        protected abstract T run()
                          throws Exception
        Meat of the execution. When this method returns, a step execution is over.
        Throws:
        Exception
      • start

        public final boolean start()
                            throws Exception
        Description copied from class: StepExecution
        Start execution of something and report the end result back to the given callback.

        Arguments are passed when instantiating steps.

        This method will run in the CPS VM thread and as such should not perform I/O or block. Use SynchronousNonBlockingStepExecution or GeneralNonBlockingStepExecution as needed.

        Specified by:
        start in class StepExecution
        Returns:
        true if the execution of this step has synchronously completed before this method returns. It is the callee's responsibility to set the return value via StepContext.onSuccess(Object) or FutureCallback.onFailure(Throwable). false if the asynchronous execution has started and that StepContext will be notified when the result comes in. (Note that the nature of asynchrony is such that it is possible for the StepContext to be already notified before this method returns.)
        Throws:
        Exception - if any exception is thrown, Step is assumed to have completed abnormally synchronously (as if FutureCallback.onFailure(java.lang.Throwable) is called and the method returned true.)
      • stop

        public void stop​(Throwable cause)
                  throws Exception
        If the computation is going synchronously, try to cancel that.
        Overrides:
        stop in class StepExecution
        Parameters:
        cause - Contextual information that lets the step know what resulted in stopping an executing step, passed in the hope that this will assist diagnostics.
        Throws:
        Exception