Class ResponseTracker
- java.lang.Object
-
- org.ovirt.vdsm.jsonrpc.client.internal.ResponseTracker
-
- All Implemented Interfaces:
java.lang.Runnable
public class ResponseTracker extends java.lang.Object implements java.lang.RunnableResponse tracker thread is responsible for tracking and retrying requests. For each connection there is single instance of the thread.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ScheduledExecutorServiceexecutorServiceprivate java.util.concurrent.ConcurrentMap<java.lang.String,java.util.List<com.fasterxml.jackson.databind.JsonNode>>hostToIdprivate java.util.concurrent.atomic.AtomicBooleanisTrackingprivate java.util.concurrent.locks.Locklockprivate static org.slf4j.Loggerlogprivate java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,ResponseTracking>mapprivate java.util.Queue<com.fasterxml.jackson.databind.JsonNode>queueprivate java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,JsonRpcCall>runningCallsprivate static intTRACKING_TIMEOUT
-
Constructor Summary
Constructors Constructor Description ResponseTracker()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()protected java.util.Map<java.lang.String,java.util.List<com.fasterxml.jackson.databind.JsonNode>>getHostMap()private voidhandleFailure(ResponseTracking tracking, com.fasterxml.jackson.databind.JsonNode id, java.lang.String failureDetails)protected voidloop()voidprocessIssue(JsonRpcResponse response)voidregisterCall(JsonRpcRequest req, JsonRpcCall call)voidregisterTrackingRequest(JsonRpcRequest req, ResponseTracking tracking)private voidremove(ResponseTracking tracking, com.fasterxml.jackson.databind.JsonNode id, JsonRpcResponse response)JsonRpcCallremoveCall(com.fasterxml.jackson.databind.JsonNode id)private voidremoveNodes(java.util.List<com.fasterxml.jackson.databind.JsonNode> nodes, JsonRpcResponse errorResponse)private voidremoveRequestFromTracking(com.fasterxml.jackson.databind.JsonNode id)voidrun()voidsetExecutorService(java.util.concurrent.ScheduledExecutorService executorService)
-
-
-
Field Detail
-
log
private static final org.slf4j.Logger log
-
TRACKING_TIMEOUT
private static final int TRACKING_TIMEOUT
- See Also:
- Constant Field Values
-
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
-
-
Method Detail
-
removeRequestFromTracking
private void removeRequestFromTracking(com.fasterxml.jackson.databind.JsonNode id)
-
registerCall
public void registerCall(JsonRpcRequest req, JsonRpcCall call)
-
removeCall
public JsonRpcCall removeCall(com.fasterxml.jackson.databind.JsonNode id)
-
registerTrackingRequest
public void registerTrackingRequest(JsonRpcRequest req, ResponseTracking tracking)
-
run
public void run()
- Specified by:
runin interfacejava.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)
-
remove
private void remove(ResponseTracking tracking, com.fasterxml.jackson.databind.JsonNode id, JsonRpcResponse response)
-
processIssue
public void processIssue(JsonRpcResponse response)
-
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()
-
-