Class JobBuilder<I,​O>

  • Type Parameters:
    I - type of input records payload
    O - 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 Detail

      • JobBuilder

        public JobBuilder()
        Create a new JobBuilder.
    • 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. See JobListener 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. See BatchListener 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. See RecordReaderListener 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. See PipelineListener 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. See RecordWriterListener 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