Class InMemoryJobService
java.lang.Object
org.apache.beam.model.jobmanagement.v1.JobServiceGrpc.JobServiceImplBase
org.apache.beam.runners.jobsubmission.InMemoryJobService
- All Implemented Interfaces:
AutoCloseable,org.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService,FnService,org.apache.beam.vendor.grpc.v1p69p0.io.grpc.BindableService
public class InMemoryJobService
extends org.apache.beam.model.jobmanagement.v1.JobServiceGrpc.JobServiceImplBase
implements FnService
A InMemoryJobService that prepares and runs jobs on behalf of a client using a
JobInvoker.
Job management is handled in-memory rather than any persistent storage, running the risk of leaking jobs if the InMemoryJobService crashes.
TODO: replace in-memory job management state with persistent solution.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe default maximum number of completed invocations to keep. -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel(org.apache.beam.model.jobmanagement.v1.JobApi.CancelJobRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.CancelJobResponse> responseObserver) voidclose().static InMemoryJobServicecreate(GrpcFnServer<ArtifactStagingService> stagingService, Function<String, String> stagingServiceTokenProvider, ThrowingConsumer<Exception, String> cleanupJobFn, JobInvoker invoker) Creates an InMemoryJobService.static InMemoryJobServicecreate(GrpcFnServer<ArtifactStagingService> stagingService, Function<String, String> stagingServiceTokenProvider, ThrowingConsumer<Exception, String> cleanupJobFn, JobInvoker invoker, int maxInvocationHistory) Creates an InMemoryJobService.voiddescribePipelineOptions(org.apache.beam.model.jobmanagement.v1.JobApi.DescribePipelineOptionsRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.DescribePipelineOptionsResponse> responseObserver) voidgetJobMetrics(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobMetricsRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.GetJobMetricsResponse> responseObserver) voidgetJobs(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobsRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.GetJobsResponse> responseObserver) voidgetMessageStream(org.apache.beam.model.jobmanagement.v1.JobApi.JobMessagesRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.JobMessagesResponse> responseObserver) voidgetPipeline(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobPipelineRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.GetJobPipelineResponse> responseObserver) voidgetState(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobStateRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.JobStateEvent> responseObserver) voidgetStateStream(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobStateRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.JobStateEvent> responseObserver) voidprepare(org.apache.beam.model.jobmanagement.v1.JobApi.PrepareJobRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.PrepareJobResponse> responseObserver) voidrun(org.apache.beam.model.jobmanagement.v1.JobApi.RunJobRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.RunJobResponse> responseObserver) Methods inherited from class org.apache.beam.model.jobmanagement.v1.JobServiceGrpc.JobServiceImplBase
bindServiceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.beam.vendor.grpc.v1p69p0.io.grpc.BindableService
bindServiceMethods inherited from interface org.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
drain
-
Field Details
-
DEFAULT_MAX_INVOCATION_HISTORY
public static final int DEFAULT_MAX_INVOCATION_HISTORYThe default maximum number of completed invocations to keep.- See Also:
-
-
Method Details
-
create
public static InMemoryJobService create(GrpcFnServer<ArtifactStagingService> stagingService, Function<String, String> stagingServiceTokenProvider, ThrowingConsumer<Exception, String> cleanupJobFn, JobInvoker invoker) Creates an InMemoryJobService.- Parameters:
stagingService- The staging service.stagingServiceTokenProvider- Function mapping a preparationId to a staging service token.cleanupJobFn- A cleanup function to run, parameterized with the staging token of a job.invoker- A JobInvoker which creates the jobs.- Returns:
- A new InMemoryJobService.
-
create
public static InMemoryJobService create(GrpcFnServer<ArtifactStagingService> stagingService, Function<String, String> stagingServiceTokenProvider, ThrowingConsumer<Exception, String> cleanupJobFn, JobInvoker invoker, int maxInvocationHistory) Creates an InMemoryJobService.- Parameters:
stagingService- The staging service.stagingServiceTokenProvider- Function mapping a preparationId to a staging service token.cleanupJobFn- A cleanup function to run, parameterized with the staging token of a job.invoker- A JobInvoker which creates the jobs.maxInvocationHistory- The maximum number of completed invocations to keep.- Returns:
- A new InMemoryJobService.
-
prepare
public void prepare(org.apache.beam.model.jobmanagement.v1.JobApi.PrepareJobRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.PrepareJobResponse> responseObserver) - Specified by:
preparein interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
run
public void run(org.apache.beam.model.jobmanagement.v1.JobApi.RunJobRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.RunJobResponse> responseObserver) - Specified by:
runin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
getJobs
public void getJobs(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobsRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.GetJobsResponse> responseObserver) - Specified by:
getJobsin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
getState
public void getState(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobStateRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.JobStateEvent> responseObserver) - Specified by:
getStatein interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
getPipeline
public void getPipeline(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobPipelineRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.GetJobPipelineResponse> responseObserver) - Specified by:
getPipelinein interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
cancel
public void cancel(org.apache.beam.model.jobmanagement.v1.JobApi.CancelJobRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.CancelJobResponse> responseObserver) - Specified by:
cancelin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
getStateStream
public void getStateStream(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobStateRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.JobStateEvent> responseObserver) - Specified by:
getStateStreamin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
getMessageStream
public void getMessageStream(org.apache.beam.model.jobmanagement.v1.JobApi.JobMessagesRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.JobMessagesResponse> responseObserver) - Specified by:
getMessageStreamin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
getJobMetrics
public void getJobMetrics(org.apache.beam.model.jobmanagement.v1.JobApi.GetJobMetricsRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.GetJobMetricsResponse> responseObserver) - Specified by:
getJobMetricsin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
describePipelineOptions
public void describePipelineOptions(org.apache.beam.model.jobmanagement.v1.JobApi.DescribePipelineOptionsRequest request, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<org.apache.beam.model.jobmanagement.v1.JobApi.DescribePipelineOptionsResponse> responseObserver) - Specified by:
describePipelineOptionsin interfaceorg.apache.beam.model.jobmanagement.v1.JobServiceGrpc.AsyncService
-
close
Description copied from interface:FnService.There should be no more calls to any service method by the time a call to
FnService.close()begins. Specifically, this means that aServerthat this service is bound to should have completed a call to theServer.shutdown()method, and all future incoming calls will be rejected.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceFnService- Throws:
Exception
-