Class JobExecutor

  • All Implemented Interfaces:
    java.lang.Runnable

    public class JobExecutor
    extends java.lang.Object
    implements java.lang.Runnable
    • Field Detail

      • POLLING_DELAY

        private static final long POLLING_DELAY
        Polling delay in ms.
        See Also:
        Constant Field Values
      • MILLISECONDS_PER_MINUTE

        private static final long MILLISECONDS_PER_MINUTE
        Number of ms. per min.
        See Also:
        Constant Field Values
      • jobIdentifier

        private final java.lang.String jobIdentifier
      • interactive

        private final boolean interactive
      • pollingDelay

        private final long pollingDelay
      • startupTimeout

        private final long startupTimeout
      • adaptorName

        private final java.lang.String adaptorName
      • workingDirectory

        private final Path workingDirectory
      • exitStatus

        private java.lang.Integer exitStatus
      • updateSignal

        private boolean updateSignal
      • isRunning

        private boolean isRunning
      • killed

        private boolean killed
      • done

        private boolean done
      • hasRun

        private boolean hasRun
      • state

        private java.lang.String state
    • Constructor Detail

      • JobExecutor

        public JobExecutor​(java.lang.String adaptorName,
                           FileSystem filesystem,
                           Path workingDirectory,
                           InteractiveProcessFactory factory,
                           JobDescription description,
                           java.lang.String jobIdentifier,
                           boolean interactive,
                           long pollingDelay,
                           long startupTimeout)
    • Method Detail

      • hasRun

        public boolean hasRun()
      • kill

        public boolean kill()
      • isDone

        public boolean isDone()
      • getJobIdentifier

        public java.lang.String getJobIdentifier()
      • getState

        public java.lang.String getState()
      • getError

        public java.lang.Exception getError()
      • updateState

        private void updateState​(java.lang.String state,
                                 int exitStatus,
                                 XenonException e)
      • getKilled

        private boolean getKilled()
      • setStreams

        private void setStreams​(Streams streams)
      • waitUntilRunning

        public JobStatus waitUntilRunning​(long timeout)
      • waitUntilDone

        public JobStatus waitUntilDone​(long timeout)
      • triggerStatusUpdate

        private void triggerStatusUpdate()
        Signal the polling thread to produce a status update.
      • waitForStatusUpdate

        private void waitForStatusUpdate​(long maxDelay)
        Wait for a certain amount of time for an update.
        Parameters:
        maxDelay - the maximum time to wait
      • clearUpdateRequest

        private void clearUpdateRequest()
        Clear the update signal and wake up any waiting threads
      • sleep

        private void sleep​(long maxDelay)
        Sleep for a certain amount of time, provide the job is not done, and no one requested an update.
        Parameters:
        maxDelay - the maximum amount of time to wait
      • processPath

        private Path processPath​(Path root,
                                 java.lang.String path)
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable