Class AsyncIOProcessor<Item>
- java.lang.Object
-
- org.elasticsearch.common.util.concurrent.AsyncIOProcessor<Item>
-
public abstract class AsyncIOProcessor<Item> extends java.lang.ObjectThis 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 theput(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 Summary
Constructors Modifier Constructor Description protectedAsyncIOProcessor(org.apache.logging.log4j.Logger logger, int queueSize)
-
Method Summary
Modifier and Type Method Description voidput(Item item, java.util.function.Consumer<java.lang.Exception> listener)Adds the given item to the queue.protected abstract voidwrite(java.util.List<Tuple<Item,java.util.function.Consumer<java.lang.Exception>>> candidates)Writes or processes the items out or to disk.
-
-
-
Method Detail
-
put
public final void put(Item item, java.util.function.Consumer<java.lang.Exception> listener)
Adds the given item to the queue. The listener is notified once the item is processed
-
-