Class 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 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 Summary

      Constructors 
      Modifier Constructor Description
      protected AsyncIOProcessor​(org.apache.logging.log4j.Logger logger, int queueSize, ThreadContext threadContext)  
    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AsyncIOProcessor

        protected AsyncIOProcessor​(org.apache.logging.log4j.Logger logger,
                                   int queueSize,
                                   ThreadContext threadContext)
    • 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
      • write

        protected abstract void write​(java.util.List<Tuple<Item,​java.util.function.Consumer<java.lang.Exception>>> candidates)
                               throws java.io.IOException
        Writes or processes the items out or to disk.
        Throws:
        java.io.IOException