Class JobProcessManagerImpl
- java.lang.Object
-
- com.netflix.genie.agent.execution.process.impl.JobProcessManagerImpl
-
- All Implemented Interfaces:
JobProcessManager
public class JobProcessManagerImpl extends java.lang.Object implements JobProcessManager
Configures and launches a job sub-process using metadata passed through ExecutionContext.- Since:
- 4.0.0
-
-
Constructor Summary
Constructors Constructor Description JobProcessManagerImpl(org.springframework.scheduling.TaskScheduler taskScheduler, BraveTracingComponents tracingComponents)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidkill(KillService.KillSource source)Terminate job process execution (if still running) or prevent it from launching (if not launched yet).voidlaunchProcess(java.io.File jobDirectory, java.io.File jobScript, boolean interactive, java.lang.Integer timeout, boolean launchInJobDirectory)Launch the job process (unless launch was aborted by previous akillcall).JobProcessResultwaitFor()Wait indefinitely for the job process to terminate.
-
-
-
Constructor Detail
-
JobProcessManagerImpl
public JobProcessManagerImpl(org.springframework.scheduling.TaskScheduler taskScheduler, BraveTracingComponents tracingComponents)Constructor.- Parameters:
taskScheduler- TheTaskSchedulerinstance to use to run scheduled asynchronous taskstracingComponents- TheBraveTracingComponentsinstance to use for propagating trace information
-
-
Method Detail
-
launchProcess
public void launchProcess(java.io.File jobDirectory, java.io.File jobScript, boolean interactive, @Nullable java.lang.Integer timeout, boolean launchInJobDirectory) throws JobLaunchExceptionLaunch the job process (unless launch was aborted by previous akillcall).- Specified by:
launchProcessin interfaceJobProcessManager- Parameters:
jobDirectory- Job directoryjobScript- job script (a.k.a. run file)interactive- launch in interactive mode (inherit I/O) or batch (no input, write outputs to files)timeout- The optional number of seconds this job is allowed to run before the system will kill itlaunchInJobDirectory- launch the job process from the job directory rather than the current directory- Throws:
JobLaunchException- if the job process failed to launch
-
kill
public void kill(KillService.KillSource source)
Terminate job process execution (if still running) or prevent it from launching (if not launched yet). Optionally sends SIGINT to the process (unnecessary under certain circumstances. For example, CTRL-C in a terminal session, is already received by the job process, issuing a second one is unneeded).- Specified by:
killin interfaceJobProcessManager- Parameters:
source- TheKillService.KillSourcevalue representing where this kill request is coming from
-
waitFor
public JobProcessResult waitFor() throws java.lang.InterruptedException
Wait indefinitely for the job process to terminate.- Specified by:
waitForin interfaceJobProcessManager- Returns:
- KILLED, SUCCESSFUL, or FAILED
- Throws:
java.lang.InterruptedException- if the calling thread is interrupted while waiting
-
-