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.Runnable
Response 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.ScheduledExecutorService
executorService
private java.util.concurrent.ConcurrentMap<java.lang.String,java.util.List<com.fasterxml.jackson.databind.JsonNode>>
hostToId
private java.util.concurrent.atomic.AtomicBoolean
isTracking
private java.util.concurrent.locks.Lock
lock
private static org.slf4j.Logger
log
private java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,ResponseTracking>
map
private java.util.Queue<com.fasterxml.jackson.databind.JsonNode>
queue
private java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,JsonRpcCall>
runningCalls
private static int
TRACKING_TIMEOUT
-
Constructor Summary
Constructors Constructor Description ResponseTracker()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
protected java.util.Map<java.lang.String,java.util.List<com.fasterxml.jackson.databind.JsonNode>>
getHostMap()
private void
handleFailure(ResponseTracking tracking, com.fasterxml.jackson.databind.JsonNode id)
protected void
loop()
void
processIssue(JsonRpcResponse response)
void
registerCall(JsonRpcRequest req, JsonRpcCall call)
void
registerTrackingRequest(JsonRpcRequest req, ResponseTracking tracking)
private void
remove(ResponseTracking tracking, com.fasterxml.jackson.databind.JsonNode id, JsonRpcResponse response)
JsonRpcCall
removeCall(com.fasterxml.jackson.databind.JsonNode id)
private void
removeNodes(java.util.List<com.fasterxml.jackson.databind.JsonNode> nodes, JsonRpcResponse errorResponse)
private void
removeRequestFromTracking(com.fasterxml.jackson.databind.JsonNode id)
void
run()
void
setExecutorService(java.util.concurrent.ScheduledExecutorService executorService)
-
-
-
Field Detail
-
log
private static org.slf4j.Logger log
-
TRACKING_TIMEOUT
private static final int TRACKING_TIMEOUT
- See Also:
- Constant Field Values
-
isTracking
private java.util.concurrent.atomic.AtomicBoolean isTracking
-
runningCalls
private final java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,JsonRpcCall> runningCalls
-
map
private java.util.concurrent.ConcurrentMap<com.fasterxml.jackson.databind.JsonNode,ResponseTracking> map
-
hostToId
private java.util.concurrent.ConcurrentMap<java.lang.String,java.util.List<com.fasterxml.jackson.databind.JsonNode>> hostToId
-
queue
private 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:
run
in interfacejava.lang.Runnable
-
loop
protected void loop()
-
close
public void close()
-
handleFailure
private void handleFailure(ResponseTracking tracking, com.fasterxml.jackson.databind.JsonNode id)
-
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()
-
-