Class ResponseTracker

  • All Implemented Interfaces:
    java.lang.Runnable

    public class ResponseTracker
    extends java.lang.Object
    implements java.lang.Runnable
    Response tracker thread is responsible for tracking and retrying requests. For each connection there is single instance of the thread.
    • Field Detail

      • log

        private static final org.slf4j.Logger log
      • isTracking

        private final java.util.concurrent.atomic.AtomicBoolean isTracking
      • runningCalls

        private final java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,​JsonRpcCall> runningCalls
      • map

        private final java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,​ResponseTracking> map
      • hostToId

        private final java.util.concurrent.ConcurrentMap<java.lang.String,​java.util.List<com.fasterxml.jackson.databind.JsonNode>> hostToId
      • queue

        private final java.util.Queue<com.fasterxml.jackson.databind.JsonNode> queue
      • lock

        private final java.util.concurrent.locks.Lock lock
      • executorService

        private java.util.concurrent.ScheduledExecutorService executorService
    • Constructor Detail

      • ResponseTracker

        public ResponseTracker()
    • Method Detail

      • removeRequestFromTracking

        private void removeRequestFromTracking​(com.fasterxml.jackson.databind.JsonNode id)
      • removeCall

        public JsonRpcCall removeCall​(com.fasterxml.jackson.databind.JsonNode id)
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
      • loop

        protected void loop()
      • close

        public void close()
      • handleFailure

        private void handleFailure​(ResponseTracking tracking,
                                   com.fasterxml.jackson.databind.JsonNode id,
                                   java.lang.String failureDetails)
      • setExecutorService

        public void setExecutorService​(java.util.concurrent.ScheduledExecutorService executorService)
      • removeNodes

        private void removeNodes​(java.util.List<com.fasterxml.jackson.databind.JsonNode> nodes,
                                 JsonRpcResponse errorResponse)
      • getHostMap

        protected java.util.Map<java.lang.String,​java.util.List<com.fasterxml.jackson.databind.JsonNode>> getHostMap()