compbio.engine.local
Class AsyncLocalRunner

java.lang.Object
  extended by compbio.engine.local.AsyncLocalRunner
All Implemented Interfaces:
AsyncExecutor

public final class AsyncLocalRunner
extends Object
implements AsyncExecutor


Constructor Summary
AsyncLocalRunner()
           
 
Method Summary
 boolean cancelJob(String jobId)
          Stop running job.
 boolean cleanup(String jobId)
          Remove all files and a job directory for a jobid.
 JobStatus getJobStatus(String jobId)
          Query the status of the job
 ConfiguredExecutable<?> getResults(String taskId)
          Retrieve the results of the job.
 String getWorkDirectory(String jobId)
           
 String submitJob(ConfiguredExecutable<?> executable)
          Submits job for the execution Immediate execution is not guaranteed, this method puts the job in the queue.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AsyncLocalRunner

public AsyncLocalRunner()
Method Detail

getWorkDirectory

public String getWorkDirectory(String jobId)
Specified by:
getWorkDirectory in interface AsyncExecutor
Parameters:
jobId - unique job identifier
Returns:
task working directory

cancelJob

public boolean cancelJob(String jobId)
Description copied from interface: AsyncExecutor
Stop running job. Please not that this method does not guarantee to remove the job directory and files in it.

Specified by:
cancelJob in interface AsyncExecutor
Returns:
true if job was cancelled successfully, false otherwise

getJobStatus

public JobStatus getJobStatus(String jobId)
Description copied from interface: AsyncExecutor
Query the status of the job

Specified by:
getJobStatus in interface AsyncExecutor
Returns:
The JobStatus object representing the status of the job
See Also:
JobStatus

submitJob

public String submitJob(ConfiguredExecutable<?> executable)
                 throws JobSubmissionException
Description copied from interface: AsyncExecutor
Submits job for the execution Immediate execution is not guaranteed, this method puts the job in the queue. All it guarantees that the job will be eventually executed. The start of execution will depend on the number of jobs in the queue.

Specified by:
submitJob in interface AsyncExecutor
Returns:
unique job identifier
Throws:
JobSubmissionException - if submission fails. This usually happens due to the problem on a server side.

cleanup

public boolean cleanup(String jobId)
Description copied from interface: AsyncExecutor
Remove all files and a job directory for a jobid.

Specified by:
cleanup in interface AsyncExecutor
Parameters:
jobId -
Returns:
true if all files were removed, false otherwise

getResults

public ConfiguredExecutable<?> getResults(String taskId)
                                   throws ResultNotAvailableException
Description copied from interface: AsyncExecutor
Retrieve the results of the job. Please not that current implementations of this method blocks if the task is running until the end of the calculation.

Specified by:
getResults in interface AsyncExecutor
Parameters:
taskId - job identifier obtained at the job submission
Returns:
ConfiguredExecutable object from which result can be obtained
Throws:
ResultNotAvailableException - if the result is not available for whatever reason. Could be due to execution failure, or due to the results being removed from the server at the time of request.