Package org.jeasy.batch.core.job
Class JobBuilder<I,O>
- java.lang.Object
-
- org.jeasy.batch.core.job.JobBuilder<I,O>
-
- Type Parameters:
I
- type of input records payloadO
- type of output records payload
public final class JobBuilder<I,O> extends java.lang.Object
Batch job builder. This is the main entry point to configure batch jobs.- Author:
- Mahmoud Ben Hassine ([email protected])
-
-
Constructor Summary
Constructors Constructor Description JobBuilder()
Create a newJobBuilder
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JobBuilder<I,O>
batchListener(BatchListener<O> batchListener)
Register a batch listener.JobBuilder<I,O>
batchSize(int batchSize)
Set the batch size.Job
build()
Build a batch job instance.JobBuilder<I,O>
enableBatchScanning(boolean batchScanning)
Activate batch scanning.JobBuilder<I,O>
enableJmx(boolean jmx)
Activate JMX monitoring.JobBuilder<I,O>
errorThreshold(long errorThreshold)
Set a threshold for errors.JobBuilder<I,O>
filter(RecordFilter<?> recordFilter)
Register a record filter.JobBuilder<I,O>
jobListener(JobListener jobListener)
Register a job listener.JobBuilder<I,O>
mapper(RecordMapper<?,?> recordMapper)
Register a record mapper.JobBuilder<I,O>
marshaller(RecordMarshaller<?,?> recordMarshaller)
Register a record marshaller.JobBuilder<I,O>
named(java.lang.String name)
Set the job name.JobBuilder<I,O>
pipelineListener(PipelineListener pipelineListener)
Register a pipeline listener.JobBuilder<I,O>
processor(RecordProcessor<?,?> recordProcessor)
Register a record processor.JobBuilder<I,O>
reader(RecordReader<I> recordReader)
Register a record reader.JobBuilder<I,O>
readerListener(RecordReaderListener<I> recordReaderListener)
Register a record reader listener.JobBuilder<I,O>
validator(RecordValidator<?> recordValidator)
Register a record validator.JobBuilder<I,O>
writer(RecordWriter<O> recordWriter)
Register a record writer.JobBuilder<I,O>
writerListener(RecordWriterListener<O> recordWriterListener)
Register a record writer listener.
-
-
-
Constructor Detail
-
JobBuilder
public JobBuilder()
Create a newJobBuilder
.
-
-
Method Detail
-
named
public JobBuilder<I,O> named(java.lang.String name)
Set the job name.- Parameters:
name
- the job name- Returns:
- the job builder
-
reader
public JobBuilder<I,O> reader(RecordReader<I> recordReader)
Register a record reader.- Parameters:
recordReader
- the record reader to register- Returns:
- the job builder
-
filter
public JobBuilder<I,O> filter(RecordFilter<?> recordFilter)
Register a record filter.- Parameters:
recordFilter
- the record filter to register- Returns:
- the job builder
-
mapper
public JobBuilder<I,O> mapper(RecordMapper<?,?> recordMapper)
Register a record mapper.- Parameters:
recordMapper
- the record mapper to register- Returns:
- the job builder
-
validator
public JobBuilder<I,O> validator(RecordValidator<?> recordValidator)
Register a record validator.- Parameters:
recordValidator
- the record validator to register- Returns:
- the job builder
-
processor
public JobBuilder<I,O> processor(RecordProcessor<?,?> recordProcessor)
Register a record processor.- Parameters:
recordProcessor
- the record processor to register- Returns:
- the job builder
-
marshaller
public JobBuilder<I,O> marshaller(RecordMarshaller<?,?> recordMarshaller)
Register a record marshaller.- Parameters:
recordMarshaller
- the record marshaller to register- Returns:
- the job builder
-
writer
public JobBuilder<I,O> writer(RecordWriter<O> recordWriter)
Register a record writer.- Parameters:
recordWriter
- the record writer to register- Returns:
- the job builder
-
errorThreshold
public JobBuilder<I,O> errorThreshold(long errorThreshold)
Set a threshold for errors. The job will be aborted if the threshold is exceeded.- Parameters:
errorThreshold
- the error threshold- Returns:
- the job builder
-
enableJmx
public JobBuilder<I,O> enableJmx(boolean jmx)
Activate JMX monitoring.- Parameters:
jmx
- true to enable jmx monitoring- Returns:
- the job builder
-
enableBatchScanning
public JobBuilder<I,O> enableBatchScanning(boolean batchScanning)
Activate batch scanning. When activated, batch scanning will be kicked in when an exception occurs during the batch writing. Records will be attempted to be written one by one as a singleton batch. This allows to skip faulty records and continue the job execution instead of failing the entire job at the first failed batch.This feature works well with transactional writers where a failed write operation can be re-executed without side effects. However, a known limitation is that when used with a non-transactional writer, items might be written twice (like in the case of a file writer where the output stream is flushed before the exception occurs). To prevent this, a manual rollback action should be done in a
BatchListener.onBatchWritingException(org.jeasy.batch.core.record.Batch, java.lang.Throwable)
method.- Parameters:
batchScanning
- true to enable batch scanning. False by default.- Returns:
- the job builder
-
batchSize
public JobBuilder<I,O> batchSize(int batchSize)
Set the batch size.- Parameters:
batchSize
- the batch size- Returns:
- the job builder
-
jobListener
public JobBuilder<I,O> jobListener(JobListener jobListener)
Register a job listener. SeeJobListener
for available callback methods.- Parameters:
jobListener
- The job listener to add.- Returns:
- the job builder
-
batchListener
public JobBuilder<I,O> batchListener(BatchListener<O> batchListener)
Register a batch listener. SeeBatchListener
for available callback methods.- Parameters:
batchListener
- The batch listener to add.- Returns:
- the job builder
-
readerListener
public JobBuilder<I,O> readerListener(RecordReaderListener<I> recordReaderListener)
Register a record reader listener. SeeRecordReaderListener
for available callback methods.- Parameters:
recordReaderListener
- The record reader listener to add.- Returns:
- the job builder
-
pipelineListener
public JobBuilder<I,O> pipelineListener(PipelineListener pipelineListener)
Register a pipeline listener. SeePipelineListener
for available callback methods.- Parameters:
pipelineListener
- The pipeline listener to add.- Returns:
- the job builder
-
writerListener
public JobBuilder<I,O> writerListener(RecordWriterListener<O> recordWriterListener)
Register a record writer listener. SeeRecordWriterListener
for available callback methods.- Parameters:
recordWriterListener
- The record writer listener to register.- Returns:
- the job builder
-
build
public Job build()
Build a batch job instance.- Returns:
- a batch job instance
-
-