Class BulkIndexComputation

java.lang.Object
org.nuxeo.lib.stream.computation.AbstractComputation
org.nuxeo.elasticsearch.bulk.BulkIndexComputation
All Implemented Interfaces:
Computation, org.opensearch.action.bulk.BulkProcessor.Listener

public class BulkIndexComputation extends AbstractComputation implements org.opensearch.action.bulk.BulkProcessor.Listener
A computation that submits elasticsearch requests using the bulk API.

Note that the retry policy is handled by the elasticsearch bulk processor.

Since:
10.3
  • Field Details

    • NAME

      public static final String NAME
      See Also:
    • esBulkSize

      protected final int esBulkSize
    • esBulkActions

      protected final int esBulkActions
    • flushIntervalMs

      protected final int flushIntervalMs
    • bulkProcessor

      protected org.opensearch.action.bulk.BulkProcessor bulkProcessor
    • codec

      protected Codec<DataBucket> codec
    • updates

      protected boolean updates
    • continueOnFailure

      protected boolean continueOnFailure
    • abort

      protected volatile boolean abort
  • Constructor Details

    • BulkIndexComputation

      public BulkIndexComputation(int esBulkSize, int esBulkActions, int flushInterval)
  • Method Details

    • init

      public void init(ComputationContext context)
      Description copied from interface: Computation
      Called when the framework has registered the computation successfully. Gives users a first opportunity to schedule timer callbacks and produce records. This method can be called multiple times.
      Specified by:
      init in interface Computation
      Overrides:
      init in class AbstractComputation
      Parameters:
      context - The computation context object provided by the system.
    • processTimer

      public void processTimer(ComputationContext context, String key, long timestamp)
      Description copied from interface: Computation
      Process a timer callback previously set via ComputationContext.setTimer(String, long).
      Specified by:
      processTimer in interface Computation
      Overrides:
      processTimer in class AbstractComputation
      Parameters:
      context - The computation context object provided by the system.
      key - The name of the timer.
      timestamp - The timestamp (in ms) for which the callback was scheduled.
    • processRecord

      public void processRecord(ComputationContext context, String inputStream, Record record)
      Description copied from interface: Computation
      Process an incoming record on one of the computation's input streams.
      Specified by:
      processRecord in interface Computation
      Parameters:
      context - The computation context object provided by the system.
      inputStream - Name of the input stream that provides the record.
      record - The record.
    • destroy

      public void destroy()
      Description copied from interface: Computation
      Called when the framework is ready to shutdown the computation. Gives users a chance to perform some cleanup before the process is killed.
      Specified by:
      destroy in interface Computation
    • getESClient

      protected ESClient getESClient()
    • decodeRequest

      protected org.opensearch.action.bulk.BulkRequest decodeRequest(DataBucket bucket)
    • beforeBulk

      public void beforeBulk(long executionId, org.opensearch.action.bulk.BulkRequest request)
      Specified by:
      beforeBulk in interface org.opensearch.action.bulk.BulkProcessor.Listener
    • afterBulk

      public void afterBulk(long executionId, org.opensearch.action.bulk.BulkRequest request, org.opensearch.action.bulk.BulkResponse response)
      Specified by:
      afterBulk in interface org.opensearch.action.bulk.BulkProcessor.Listener
    • afterBulk

      public void afterBulk(long executionId, org.opensearch.action.bulk.BulkRequest request, Throwable failure)
      Specified by:
      afterBulk in interface org.opensearch.action.bulk.BulkProcessor.Listener