Class AsyncIOProcessor<Item>
- java.lang.Object
-
- org.elasticsearch.common.util.concurrent.AsyncIOProcessor<Item>
-
public abstract class AsyncIOProcessor<Item> extends java.lang.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 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 protected
AsyncIOProcessor(org.apache.logging.log4j.Logger logger, int queueSize)
-
Method Summary
Modifier and Type Method Description void
put(Item item, java.util.function.Consumer<java.lang.Exception> listener)
Adds the given item to the queue.protected abstract void
write(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
-
-