Class JobManager
java.lang.Object
uk.ac.manchester.spinnaker.nmpi.jobmanager.JobManager
- All Implemented Interfaces:
JobManagerInterface
,NMPIQueueListener
@Service("service") public class JobManager extends Object implements NMPIQueueListener, JobManagerInterface
The manager of jobs; synchronises and manages all the ongoing and future
processes and machines.
-
Field Summary
Fields Modifier and Type Field Description static int
STATUS_UPDATE_PERIOD
Seconds between status updates.Fields inherited from interface uk.ac.manchester.spinnaker.nmpi.model.job.JobManagerInterface
APPLICATION_JSON, APPLICATION_OCTET_STREAM, APPLICATION_ZIP, JOB_PROCESS_MANAGER, PATH, SETUP_SCRIPT, TEXT_PLAIN
-
Constructor Summary
Constructors Constructor Description JobManager(URL baseUrl)
Create a job manager. -
Method Summary
Modifier and Type Method Description void
addJob(Job job)
Adds a job to the listener.void
addOutput(String projectId, int id, String output, InputStream input)
void
addProvenance(int id, List<String> path, String value)
void
appendLog(int id, String logToAppend)
JobMachineAllocated
checkMachineLease(int id, int waitTime)
void
extendJobMachineLease(int id, double runTime)
ChipCoordinates
getChipCoordinates(int id, String machineName, int chipX, int chipY)
SpinnakerMachine
getJobMachine(int id, int nCores, int nChips, int nBoards, double runTime)
Response
getJobProcessManager()
SpinnakerMachine
getLargestJobMachine(int id, double runTime)
Job
getNextJob(String executerId)
Response
getSetupScript()
void
releaseMachine(int id, String machineName)
void
setExecutorExited(String executorId, String logToAppend)
Mark the executor as having exited.void
setJobError(String projectId, int id, String error, String logToAppend, String baseDirectory, List<String> outputs, RemoteStackTrace stackTrace)
void
setJobFinished(String projectId, int id, String logToAppend, String baseDirectory, List<String> outputs)
void
setMachinePower(int id, String machineName, boolean powerOn)
-
Field Details
-
STATUS_UPDATE_PERIOD
public static final int STATUS_UPDATE_PERIODSeconds between status updates.- See Also:
- Constant Field Values
-
-
Constructor Details
-
JobManager
Create a job manager.- Parameters:
baseUrl
- The URL of the REST service of the manager.
-
-
Method Details
-
addJob
Description copied from interface:NMPIQueueListener
Adds a job to the listener.- Specified by:
addJob
in interfaceNMPIQueueListener
- Parameters:
job
- The job to add.- Throws:
IOException
- If anything goes wrong.
-
getNextJob
- Specified by:
getNextJob
in interfaceJobManagerInterface
-
getLargestJobMachine
- Specified by:
getLargestJobMachine
in interfaceJobManagerInterface
-
getJobMachine
- Specified by:
getJobMachine
in interfaceJobManagerInterface
-
releaseMachine
- Specified by:
releaseMachine
in interfaceJobManagerInterface
-
setMachinePower
- Specified by:
setMachinePower
in interfaceJobManagerInterface
-
getChipCoordinates
- Specified by:
getChipCoordinates
in interfaceJobManagerInterface
-
extendJobMachineLease
public void extendJobMachineLease(int id, double runTime)- Specified by:
extendJobMachineLease
in interfaceJobManagerInterface
-
checkMachineLease
- Specified by:
checkMachineLease
in interfaceJobManagerInterface
-
appendLog
- Specified by:
appendLog
in interfaceJobManagerInterface
-
addOutput
- Specified by:
addOutput
in interfaceJobManagerInterface
-
addProvenance
- Specified by:
addProvenance
in interfaceJobManagerInterface
-
setJobFinished
public void setJobFinished(String projectId, int id, String logToAppend, String baseDirectory, List<String> outputs)- Specified by:
setJobFinished
in interfaceJobManagerInterface
-
setJobError
public void setJobError(String projectId, int id, String error, String logToAppend, String baseDirectory, List<String> outputs, RemoteStackTrace stackTrace)- Specified by:
setJobError
in interfaceJobManagerInterface
-
setExecutorExited
Mark the executor as having exited.- Parameters:
executorId
- The ID of the executor in questionlogToAppend
- The log messages
-
getJobProcessManager
- Specified by:
getJobProcessManager
in interfaceJobManagerInterface
-
getSetupScript
- Specified by:
getSetupScript
in interfaceJobManagerInterface
- Throws:
IOException
-