public class JobQueues
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private class |
JobQueues.DaemonThreadFactory
Simple thread factory which returns daemon threads instead of normal threads
|
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
adaptorName |
private InteractiveProcessFactory |
factory |
private java.util.concurrent.atomic.AtomicLong |
jobID |
private static org.slf4j.Logger |
LOGGER |
static int |
MAX_POLLING_DELAY
The maximum allowed value for the polling delay
|
static int |
MIN_POLLING_DELAY
The minimal allowed value for the polling delay
|
private java.util.concurrent.ExecutorService |
multiExecutor |
private java.util.List<JobExecutor> |
multiQ |
private Files |
myFiles |
private Scheduler |
myScheduler |
private long |
pollingDelay |
private java.util.concurrent.ExecutorService |
singleExecutor |
private java.util.List<JobExecutor> |
singleQ |
private java.util.concurrent.ExecutorService |
unlimitedExecutor |
private java.util.List<JobExecutor> |
unlimitedQ |
private Path |
workingDirectory |
Constructor and Description |
---|
JobQueues(java.lang.String adaptorName,
Files myFiles,
Scheduler myScheduler,
Path workingDirectory,
InteractiveProcessFactory factory,
int multiQThreads,
long pollingDelay) |
Modifier and Type | Method and Description |
---|---|
JobStatus |
cancelJob(Job job) |
private void |
checkScheduler(Scheduler scheduler) |
private void |
cleanupJob(java.util.List<JobExecutor> queue,
Job job) |
void |
end() |
private JobExecutor |
findJob(Job job) |
private JobExecutor |
findJob(java.util.List<JobExecutor> queue,
Job job) |
private java.util.List<JobExecutor> |
findQueue(java.lang.String queueName) |
long |
getCurrentJobID() |
java.lang.String |
getDefaultQueueName(Scheduler scheduler) |
private void |
getJobs(java.util.List<JobExecutor> list,
java.util.List<Job> out) |
Job[] |
getJobs(java.lang.String... queueNames) |
JobStatus |
getJobStatus(Job job) |
JobStatus[] |
getJobStatuses(Job... jobs) |
QueueStatus |
getQueueStatus(Scheduler scheduler,
java.lang.String queueName) |
QueueStatus[] |
getQueueStatuses(Scheduler scheduler,
java.lang.String... queueNames) |
Streams |
getStreams(Job job) |
Job |
submitJob(JobDescription description) |
private void |
verifyJobDescription(JobDescription description) |
JobStatus |
waitUntilDone(Job job,
long timeout) |
JobStatus |
waitUntilRunning(Job job,
long timeout) |
private static final org.slf4j.Logger LOGGER
public static final int MIN_POLLING_DELAY
public static final int MAX_POLLING_DELAY
private final java.lang.String adaptorName
private final Files myFiles
private final Scheduler myScheduler
private final Path workingDirectory
private final java.util.List<JobExecutor> singleQ
private final java.util.List<JobExecutor> multiQ
private final java.util.List<JobExecutor> unlimitedQ
private final java.util.concurrent.ExecutorService singleExecutor
private final java.util.concurrent.ExecutorService multiExecutor
private final java.util.concurrent.ExecutorService unlimitedExecutor
private final long pollingDelay
private final InteractiveProcessFactory factory
private final java.util.concurrent.atomic.AtomicLong jobID
public JobQueues(java.lang.String adaptorName, Files myFiles, Scheduler myScheduler, Path workingDirectory, InteractiveProcessFactory factory, int multiQThreads, long pollingDelay) throws BadParameterException
BadParameterException
public long getCurrentJobID()
private void checkScheduler(Scheduler scheduler) throws XenonException
XenonException
private void getJobs(java.util.List<JobExecutor> list, java.util.List<Job> out)
public java.lang.String getDefaultQueueName(Scheduler scheduler) throws XenonException
XenonException
public Job[] getJobs(java.lang.String... queueNames) throws NoSuchQueueException
NoSuchQueueException
private java.util.List<JobExecutor> findQueue(java.lang.String queueName) throws XenonException
XenonException
private JobExecutor findJob(java.util.List<JobExecutor> queue, Job job) throws XenonException
XenonException
private JobExecutor findJob(Job job) throws XenonException
XenonException
private void cleanupJob(java.util.List<JobExecutor> queue, Job job)
public JobStatus getJobStatus(Job job) throws XenonException
XenonException
public JobStatus waitUntilDone(Job job, long timeout) throws XenonException
XenonException
public JobStatus waitUntilRunning(Job job, long timeout) throws XenonException
XenonException
private void verifyJobDescription(JobDescription description) throws XenonException
XenonException
public Job submitJob(JobDescription description) throws XenonException
XenonException
public JobStatus cancelJob(Job job) throws XenonException
XenonException
public QueueStatus getQueueStatus(Scheduler scheduler, java.lang.String queueName) throws XenonException
XenonException
public QueueStatus[] getQueueStatuses(Scheduler scheduler, java.lang.String... queueNames) throws XenonException
XenonException
public Streams getStreams(Job job) throws XenonException
XenonException
public void end()