Interface JobTable
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
DefaultJobTable
JobTable's task is to manage the lifecycle of a job on the TaskExecutor.
There can always only be at most one job per JobID. In order to create a JobTable.Job
one needs to provide a JobTable.JobServices instance which is owned by the job.
A job can be connected to a leading JobManager or can be disconnected. In order to establish a
connection, one needs to call JobTable.Job.connect(org.apache.flink.runtime.clusterframework.types.ResourceID, org.apache.flink.runtime.jobmaster.JobMasterGateway, org.apache.flink.runtime.taskmanager.TaskManagerActions, org.apache.flink.runtime.taskmanager.CheckpointResponder, org.apache.flink.runtime.taskexecutor.GlobalAggregateManager, org.apache.flink.runtime.taskexecutor.PartitionProducerStateChecker). Once a job is connected, the respective JobTable.Connection can be retrieved via its JobID or via the ResourceID of the leader. A
connection can be disconnected via JobTable.Connection.disconnect().
In order to clean up a JobTable.Job one first needs to disconnect from the leading JobManager.
In order to completely remove the JobTable.Job from the JobTable, one needs to call JobTable.Job.close() which also closes the associated JobTable.JobServices instance.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA connection contains services bound to the lifetime of a connection with a JobManager.static interfaceA job contains services which are bound to the lifetime of a Flink job.static interfaceServices associated with a job. -
Method Summary
Modifier and TypeMethodDescriptiongetConnection(org.apache.flink.api.common.JobID jobId) Gets the connection registered under jobId.getConnection(ResourceID resourceId) Gets the connection registered under resourceId.getJob(org.apache.flink.api.common.JobID jobId) Gets the job registered under jobId.getJobs()Gets all registered jobs.<E extends Exception>
JobTable.JobgetOrCreateJob(org.apache.flink.api.common.JobID jobId, org.apache.flink.util.function.SupplierWithException<? extends JobTable.JobServices, E> jobServicesSupplier) Gets a registeredJobTable.Jobor creates one if not present.booleanisEmpty()Returnstrueif the job table does not contain any jobs.Methods inherited from interface java.lang.AutoCloseable
close
-
Method Details
-
getOrCreateJob
<E extends Exception> JobTable.Job getOrCreateJob(org.apache.flink.api.common.JobID jobId, org.apache.flink.util.function.SupplierWithException<? extends JobTable.JobServices, E> jobServicesSupplier) throws EGets a registeredJobTable.Jobor creates one if not present.- Parameters:
jobId- jobId identifies the job to getjobServicesSupplier- jobServicesSupplier create newJobTable.JobServicesif a new job needs to be created- Returns:
- the current job (existing or created) registered under jobId
- Throws:
E- if the job services could not be created
-
getJob
Gets the job registered under jobId.- Parameters:
jobId- jobId identifying the job to get- Returns:
- an
Optionalcontaining theJobTable.Jobregistered under jobId, or an emptyOptionalif no job has been registered
-
getConnection
Gets the connection registered under jobId.- Parameters:
jobId- jobId identifying the connection to get- Returns:
- an
Optionalcontaining theJobTable.Connectionregistered under jobId, or an emptyOptionalif no connection has been registered (this could also mean that a job which has not been connected exists)
-
getConnection
Gets the connection registered under resourceId.- Parameters:
resourceId- resourceId identifying the connection to get- Returns:
- an
Optionalcontaining theJobTable.Connectionregistered under resourceId, or an emptyOptionalif no connection has been registered
-
getJobs
Collection<JobTable.Job> getJobs()Gets all registered jobs.- Returns:
- collection of registered jobs
-
isEmpty
boolean isEmpty()Returnstrueif the job table does not contain any jobs.- Returns:
trueif the job table does not contain any jobs, otherwisefalse
-