public class JobExecutor
extends java.lang.Object
implements java.lang.Runnable
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
adaptorName |
private boolean |
done |
private java.lang.Exception |
error |
private java.lang.Integer |
exitStatus |
private InteractiveProcessFactory |
factory |
private Files |
files |
private boolean |
hasRun |
private boolean |
isRunning |
private JobImplementation |
job |
private boolean |
killed |
private static long |
MILLISECONDS_IN_MINUTE
Number of ms.
|
private static long |
POLLING_DELAY
Polling delay in ms.
|
private long |
pollingDelay |
private java.lang.String |
state |
private Streams |
streams |
private boolean |
updateSignal |
private Path |
workingDirectory |
Constructor and Description |
---|
JobExecutor(java.lang.String adaptorName,
Files files,
Path workingDirectory,
InteractiveProcessFactory factory,
JobImplementation job,
long pollingDelay) |
Modifier and Type | Method and Description |
---|---|
private void |
clearUpdateRequest()
Clear the update signal and wake up any waiting threads
|
java.lang.Exception |
getError() |
Job |
getJob() |
private boolean |
getKilled() |
java.lang.String |
getState() |
JobStatus |
getStatus() |
Streams |
getStreams() |
boolean |
hasRun() |
boolean |
isDone() |
boolean |
kill() |
void |
run() |
private void |
setStreams(Streams streams) |
private void |
sleep(long maxDelay)
Sleep for a certain amount of time, provide the job is not done, and no one requested an update.
|
private void |
triggerStatusUpdate()
Signal the polling thread to produce a status update.
|
private void |
updateState(java.lang.String state,
int exitStatus,
java.lang.Exception e) |
private void |
waitForStatusUpdate(long maxDelay)
Wait for a certain amount of time for an update.
|
JobStatus |
waitUntilDone(long timeout) |
JobStatus |
waitUntilRunning(long timeout) |
private static final long POLLING_DELAY
private static final long MILLISECONDS_IN_MINUTE
private final JobImplementation job
private final InteractiveProcessFactory factory
private final long pollingDelay
private final java.lang.String adaptorName
private final Files files
private final Path workingDirectory
private Streams streams
private java.lang.Integer exitStatus
private boolean updateSignal
private boolean isRunning
private boolean killed
private boolean done
private boolean hasRun
private java.lang.String state
private java.lang.Exception error
public JobExecutor(java.lang.String adaptorName, Files files, Path workingDirectory, InteractiveProcessFactory factory, JobImplementation job, long pollingDelay)
public boolean hasRun()
public boolean kill()
public boolean isDone()
public Job getJob()
public JobStatus getStatus()
public java.lang.String getState()
public java.lang.Exception getError()
private void updateState(java.lang.String state, int exitStatus, java.lang.Exception e)
private boolean getKilled()
private void setStreams(Streams streams)
public Streams getStreams() throws XenonException
XenonException
public JobStatus waitUntilRunning(long timeout)
public JobStatus waitUntilDone(long timeout)
private void triggerStatusUpdate()
private void waitForStatusUpdate(long maxDelay)
maxDelay
- the maximum time to waitprivate void clearUpdateRequest()
private void sleep(long maxDelay)
maxDelay
- the maximum amount of time to waitpublic void run()
run
in interface java.lang.Runnable