Class JobLaunchServiceImpl

java.lang.Object
com.netflix.genie.web.services.impl.JobLaunchServiceImpl
All Implemented Interfaces:
JobLaunchService

public class JobLaunchServiceImpl extends Object implements JobLaunchService
Default implementation of the JobLaunchService.
Since:
4.0.0
  • Constructor Details

    • JobLaunchServiceImpl

      public JobLaunchServiceImpl(DataServices dataServices, JobResolverService jobResolverService, AgentLauncherSelector agentLauncherSelector, com.netflix.genie.common.internal.tracing.brave.BraveTracingComponents tracingComponents, io.micrometer.core.instrument.MeterRegistry registry)
      Constructor.
      Parameters:
      dataServices - The DataServices instance to use
      jobResolverService - JobResolverService implementation used to resolve job details
      agentLauncherSelector - AgentLauncher implementation to launch agents
      tracingComponents - BraveTracingComponents instance to use to get access to instrumentation
      registry - MeterRegistry metrics repository
  • Method Details

    • launchJob

      @Nonnull public String launchJob(@Valid @Valid JobSubmission jobSubmission) throws AgentLaunchException, com.netflix.genie.common.internal.exceptions.checked.GenieJobResolutionException, IdAlreadyExistsException, NotFoundException
      Launches a job on behalf of the user.

      Given the information submitted to Genie this service will attempt to run the job which will include: - Saving the job submission information including attachments - Resolving the resources needed to run the job and persisting them - Launching the agent

      Specified by:
      launchJob in interface JobLaunchService
      Parameters:
      jobSubmission - The payload of metadata and resources making up all the information needed to launch a job
      Returns:
      The id of the job. Upon return the job will at least be in JobStatus.ACCEPTED state
      Throws:
      AgentLaunchException - If the system was unable to launch an agent to handle job execution
      com.netflix.genie.common.internal.exceptions.checked.GenieJobResolutionException - If the job, based on user input and current system state, can't be successfully resolved for whatever reason
      IdAlreadyExistsException - If the unique identifier for the job conflicts with an already existing job
      NotFoundException - When a resource that is expected to exist, like a job or a cluster, is not found in the system at runtime for some reason