package io.ebeanservice.docstore.api;

import io.ebean.Transaction;
import io.ebean.plugin.BeanType;

import java.io.IOException;

Processes index updates.

This involves sending updates directly to ElasticSearch via it's Bulk API or queuing events for future processing.

/** * Processes index updates. * <p> * This involves sending updates directly to ElasticSearch via it's Bulk API or * queuing events for future processing. * </p> */
public interface DocStoreUpdateProcessor {
Create a processor to handle updates per bean via a findEach query.
/** * Create a processor to handle updates per bean via a findEach query. */
<T> DocStoreQueryUpdate<T> createQueryUpdate(BeanType<T> beanType, int bulkBatchSize) throws IOException;
Process all the updates for a transaction.

Typically this makes calls to the Bulk API of the document store or simply adds entries to a queue for future processing.

Params:
  • docStoreUpdates – The 'Bulk' and 'Queue' updates to the indexes for the transaction.
  • bulkBatchSize – The batch size to use for Bulk API calls specified on the transaction. If this is 0 then the default batch size is used.
/** * Process all the updates for a transaction. * <p> * Typically this makes calls to the Bulk API of the document store or simply adds entries * to a queue for future processing. * </p> * * @param docStoreUpdates The 'Bulk' and 'Queue' updates to the indexes for the transaction. * @param bulkBatchSize The batch size to use for Bulk API calls specified on the transaction. * If this is 0 then the default batch size is used. */
void process(DocStoreUpdates docStoreUpdates, int bulkBatchSize);
Create a document store transaction hinting at the batch size.

The batch size can be set via Transaction.setDocStoreBatchSize(int)

/** * Create a document store transaction hinting at the batch size. * <p> * The batch size can be set via {@link Transaction#setDocStoreBatchSize(int)} */
DocStoreTransaction createTransaction(int batchSize);
Perform commit/flush of the changes made via the document store transaction.
/** * Perform commit/flush of the changes made via the document store transaction. */
void commit(DocStoreTransaction docStoreTransaction); }