Class GRpcAgentJobKillServiceImpl

java.lang.Object
com.netflix.genie.agent.execution.services.impl.grpc.GRpcAgentJobKillServiceImpl
All Implemented Interfaces:
AgentJobKillService

public class GRpcAgentJobKillServiceImpl extends Object implements AgentJobKillService
Implementation of the AgentJobKillService, listens for kill coming from server using long-polling.

Note: this implementation still suffers from a serious flaw: because it is implemented with a unary call, the server will never realize the client is gone if the connection is broken. This can lead to an accumulation of parked calls on the server. A new protocol (based on a bidirectional stream) is necessary to solve this problem.

Since:
4.0.0
  • Constructor Details

    • GRpcAgentJobKillServiceImpl

      public GRpcAgentJobKillServiceImpl(com.netflix.genie.proto.JobKillServiceGrpc.JobKillServiceFutureStub client, KillService killService, org.springframework.scheduling.TaskScheduler taskScheduler, JobKillServiceProperties properties)
      Constructor.
      Parameters:
      client - The gRPC client to use to call the server
      killService - KillService for killing the agent
      taskScheduler - A task scheduler
      properties - The service properties
  • Method Details

    • start

      public void start(@NotBlank(message="Job id cannot be blank") @NotBlank(message="Job id cannot be blank") String jobId)
      Start listening for job termination notification.
      Specified by:
      start in interface AgentJobKillService
      Parameters:
      jobId - job id
    • stop

      public void stop()
      Stop the service.
      Specified by:
      stop in interface AgentJobKillService