Class AsyncIOProcessor<Item>

java.lang.Object
org.elasticsearch.common.util.concurrent.AsyncIOProcessor<Item>

public abstract class AsyncIOProcessor<Item> extends Object
This async IO processor allows to batch IO operations and have a single writer processing the write operations. This can be used to ensure that threads can continue with other work while the actual IO operation is still processed by a single worker. A worker in this context can be any caller of the put(Object, Consumer) method since it will hijack a worker if nobody else is currently processing queued items. If the internal queue has reached it's capacity incoming threads might be blocked until other items are processed
  • Constructor Details

    • AsyncIOProcessor

      protected AsyncIOProcessor(org.apache.logging.log4j.Logger logger, int queueSize, ThreadContext threadContext)
  • Method Details

    • put

      public final void put(Item item, Consumer<Exception> listener)
      Adds the given item to the queue. The listener is notified once the item is processed
    • write

      protected abstract void write(List<org.elasticsearch.core.Tuple<Item,Consumer<Exception>>> candidates) throws IOException
      Writes or processes the items out or to disk.
      Throws:
      IOException