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
FieldsModifier and TypeFieldDescriptionstatic final int
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 -
Method Summary
Modifier and TypeMethodDescriptionvoid
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
checkMachineLease
(int id, int waitTime) void
extendJobMachineLease
(int id, double runTime) getChipCoordinates
(int id, String machineName, int chipX, int chipY) getJobMachine
(int id, int nCores, int nChips, int nBoards, double runTime) jakarta.ws.rs.core.Response
getLargestJobMachine
(int id, double runTime) getNextJob
(String executerId) jakarta.ws.rs.core.Response
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:
-
-
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
public jakarta.ws.rs.core.Response getJobProcessManager()- Specified by:
getJobProcessManager
in interfaceJobManagerInterface
-
getSetupScript
- Specified by:
getSetupScript
in interfaceJobManagerInterface
- Throws:
IOException
-