public class JobConfig extends Object implements IdentifiedDataSerializable
Constructor and Description |
---|
JobConfig() |
Modifier and Type | Method and Description |
---|---|
JobConfig |
addClass(Class... classes)
Adds the supplied classes to the list of resources that will be
available on the job's classpath while it's executing in the Jet
cluster.
|
JobConfig |
addJar(File file)
Adds the supplied JAR file to the list of JARs that will be a part of
the job's classpath while it's executing in the Jet cluster.
|
JobConfig |
addJar(String path)
Adds the JAR identified by the supplied pathname to the list of JARs
that will be a part of the job's classpath while it's executing in the
Jet cluster.
|
JobConfig |
addJar(URL url)
Adds the JAR identified by the supplied URL to the list of JARs that
will be a part of the job's classpath while it's executing in the Jet
cluster.
|
JobConfig |
addResource(File file)
Adds the supplied file to the list of resources that will be on the
job's classpath while it's executing in the Jet cluster.
|
JobConfig |
addResource(File file,
String id)
Adds the supplied file to the list of resources that will be on the
job's classpath while it's executing in the Jet cluster.
|
JobConfig |
addResource(String path)
Adds the resource identified by the supplied pathname to the list of
resources that will be on the job's classpath while it's executing in
the Jet cluster.
|
JobConfig |
addResource(String path,
String id)
Adds the resource identified by the supplied pathname to the list of
resources that will be on the job's classpath while it's executing in
the Jet cluster.
|
JobConfig |
addResource(URL url)
Adds the resource identified by the supplied URL to the list of
resources that will be on the job's classpath while it's executing in
the Jet cluster.
|
JobConfig |
addResource(URL url,
String id)
Adds the resource identified by the supplied URL to the list of
resources that will be on the job's classpath while it's executing in
the Jet cluster.
|
boolean |
equals(Object o) |
JobClassLoaderFactory |
getClassLoaderFactory()
Returns the configured
JobClassLoaderFactory . |
int |
getFactoryId()
Returns DataSerializableFactory factory ID for this class.
|
int |
getId()
Returns type identifier for this class.
|
String |
getInitialSnapshotName()
Returns the configured initial snapshot name or
null if no initial snapshot is configured. |
String |
getName()
Returns the name of the job or
null if no name was given. |
ProcessingGuarantee |
getProcessingGuarantee()
Returns the configured
processing guarantee . |
List<ResourceConfig> |
getResourceConfigs()
Returns all the registered resource configurations.
|
long |
getSnapshotIntervalMillis()
Returns the configured
snapshot interval . |
int |
hashCode() |
boolean |
isAutoScaling()
Returns whether auto scaling is enabled, see
setAutoScaling(boolean) . |
boolean |
isMetricsEnabled()
Returns if metrics collection is enabled for the job.
|
boolean |
isSplitBrainProtectionEnabled()
Tells whether
split brain protection
is enabled. |
boolean |
isStoreMetricsAfterJobCompletion()
Returns whether metrics should be stored in the cluster after the job
completes.
|
void |
readData(ObjectDataInput in)
Reads fields from the input stream
|
JobConfig |
setAutoScaling(boolean enabled)
Sets whether Jet will scale the job up or down when a member is added or
removed from the cluster.
|
JobConfig |
setClassLoaderFactory(JobClassLoaderFactory classLoaderFactory)
Sets a custom
JobClassLoaderFactory that will be used to load
job classes and resources on Jet members. |
JobConfig |
setInitialSnapshotName(String initialSnapshotName)
Sets the exported state snapshot
name to restore the initial job state from.
|
JobConfig |
setMetricsEnabled(boolean enabled)
Sets whether metrics collection should be enabled for the job.
|
JobConfig |
setName(String name)
Sets the name of the job.
|
JobConfig |
setProcessingGuarantee(ProcessingGuarantee processingGuarantee)
Set the
processing guarantee for the job. |
JobConfig |
setSnapshotIntervalMillis(long snapshotInterval)
Sets the snapshot interval in milliseconds — the interval between
the completion of the previous snapshot and the start of a new one.
|
JobConfig |
setSplitBrainProtection(boolean isEnabled)
Configures the split brain protection feature.
|
JobConfig |
setStoreMetricsAfterJobCompletion(boolean storeMetricsAfterJobCompletion)
Sets whether metrics should be stored in the cluster after the job
completes.
|
void |
writeData(ObjectDataOutput out)
Writes object fields to output stream
|
@Nonnull public JobConfig setName(@Nullable String name)
JetInstance.newJobIfAbsent(com.hazelcast.jet.core.DAG, com.hazelcast.jet.config.JobConfig)
. An active job is a job that is running,
suspended or waiting to be run.
The job name is printed in logs and is visible in Jet Management Center.
The default value is null
.
this
instance for fluent APIpublic boolean isSplitBrainProtectionEnabled()
split brain protection
is enabled.@Nonnull public JobConfig setSplitBrainProtection(boolean isEnabled)
cluster size at job submission time / 2 + 1
.
The job can be restarted only if the size of the cluster after restart is at least the quorum value. Only one of the clusters formed due to a split-brain condition can satisfy the quorum. For example, if at the time of job submission the cluster size was 5 and a network partition causes two clusters with sizes 3 and 2 to form, the job will restart only on the cluster with size 3.
Adding new nodes to the cluster after starting the job may defeat this mechanism. For instance, if there are 5 members at submission time (i.e., the quorum value is 3) and later a new node joins, a split into two clusters of size 3 will allow the job to be restarted on both sides.
Split-brain protection is disabled by default.
If auto scaling is disabled and
you manually Job.resume()
the job, the job won't start executing
until the quorum is met, but will remain in the resumed state.
this
instance for fluent APIpublic JobConfig setAutoScaling(boolean enabled)
+--------------------------+-----------------------+----------------+ | Auto scaling | Member added | Member removed | +--------------------------+-----------------------+----------------+ | Enabled | restart (after delay) | restart | | Disabled - snapshots on | no action | suspend | | Disabled - snapshots off | no action | fail | +--------------------------+-----------------------+----------------+
this
instance for fluent APIConfiguring the scale-up delay
,
Enabling/disabling snapshots
public boolean isAutoScaling()
setAutoScaling(boolean)
.@Nonnull public ProcessingGuarantee getProcessingGuarantee()
processing guarantee
.@Nonnull public JobConfig setProcessingGuarantee(@Nonnull ProcessingGuarantee processingGuarantee)
processing guarantee
for the job.
When the processing guarantee is set to at-least-once or
exactly-once, the snapshot interval can be configured via
setSnapshotIntervalMillis(long)
, otherwise it will default to
10 seconds.
The default value is ProcessingGuarantee.NONE
.
this
instance for fluent APIpublic long getSnapshotIntervalMillis()
snapshot interval
.@Nonnull public JobConfig setSnapshotIntervalMillis(long snapshotInterval)
Default value is set to 10 seconds.
this
instance for fluent API@Nonnull public JobConfig addClass(@Nonnull Class... classes)
See also addJar(java.net.URL)
and addResource(java.net.URL)
.
this
instance for fluent API@Nonnull public JobConfig addJar(@Nonnull URL url)
this
instance for fluent API@Nonnull public JobConfig addJar(@Nonnull File file)
this
instance for fluent API@Nonnull public JobConfig addJar(@Nonnull String path)
this
instance for fluent API@Nonnull public JobConfig addResource(@Nonnull URL url)
this
instance for fluent API@Nonnull public JobConfig addResource(@Nonnull URL url, @Nonnull String id)
this
instance for fluent API@Nonnull public JobConfig addResource(@Nonnull File file)
this
instance for fluent API@Nonnull public JobConfig addResource(@Nonnull File file, @Nonnull String id)
this
instance for fluent API@Nonnull public JobConfig addResource(@Nonnull String path)
this
instance for fluent API@Nonnull public JobConfig addResource(@Nonnull String path, @Nonnull String id)
this
instance for fluent API@Nonnull public List<ResourceConfig> getResourceConfigs()
@Nonnull public JobConfig setClassLoaderFactory(@Nullable JobClassLoaderFactory classLoaderFactory)
JobClassLoaderFactory
that will be used to load
job classes and resources on Jet members.this
instance for fluent API@Nullable public JobClassLoaderFactory getClassLoaderFactory()
JobClassLoaderFactory
.@Nullable public String getInitialSnapshotName()
null
if no initial snapshot is configured.@Nonnull public JobConfig setInitialSnapshotName(@Nullable String initialSnapshotName)
The job will use the state even if processing guarantee is
set to NONE
.
initialSnapshotName
- the snapshot name given to Job.exportSnapshot(String)
this
instance for fluent API@Nonnull public JobConfig setMetricsEnabled(boolean enabled)
MetricsConfig.isEnabled()
to be on in order to function.
Metrics for running jobs can be queried using Job.getMetrics()
It's enabled by default.
public boolean isMetricsEnabled()
public boolean isStoreMetricsAfterJobCompletion()
MetricsConfig.isEnabled()
and
isMetricsEnabled()
to be on in order to function.
If enabled, metrics can be retrieved by calling
Job.getMetrics()
.
It's disabled by default.
public JobConfig setStoreMetricsAfterJobCompletion(boolean storeMetricsAfterJobCompletion)
Job.getMetrics()
.
If disabled, once the configured job stops running Job.getMetrics()
will always return empty metrics for it, regardless of the settings
for global metrics collection
or per job metrics collection
.
It's disabled by default.
public int getFactoryId()
IdentifiedDataSerializable
getFactoryId
in interface IdentifiedDataSerializable
public int getId()
IdentifiedDataSerializable
getId
in interface IdentifiedDataSerializable
public void writeData(ObjectDataOutput out) throws IOException
DataSerializable
writeData
in interface DataSerializable
out
- outputIOException
- if an I/O error occurs. In particular,
an IOException
may be thrown if the
output stream has been closed.public void readData(ObjectDataInput in) throws IOException
DataSerializable
readData
in interface DataSerializable
in
- inputIOException
- if an I/O error occurs. In particular,
an IOException
may be thrown if the
input stream has been closed.Copyright © 2019 Hazelcast, Inc.. All rights reserved.