Bug 6352 - [SR3] RPC timeout in JsonRPCEndpoint is not configurable
[ovsdb.git] / library / impl / src / main / java / org / opendaylight / ovsdb / lib / jsonrpc / JsonRpcEndpoint.java
index d9f6dfdb40c87e469999865b1c9c8619dc08c68e..ad8f078aa69eb2b76f9e3c22e750363ae796f7ec 100644 (file)
@@ -41,13 +41,14 @@ import org.slf4j.LoggerFactory;
 public class JsonRpcEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(JsonRpcEndpoint.class);
-    private static final int REAPER_INTERVAL = 300;
     private static final int REAPER_THREADS = 3;
     private static final ThreadFactory FUTURE_REAPER_THREAD_FACTORY = new ThreadFactoryBuilder()
             .setNameFormat("OVSDB-Lib-Future-Reaper-%d").build();
     private static final ScheduledExecutorService FUTURE_REAPER_SERVICE
             = Executors.newScheduledThreadPool(REAPER_THREADS, FUTURE_REAPER_THREAD_FACTORY);
 
+    private static int reaperInterval = 1000;
+
     public class CallContext {
         Method method;
         JsonRpc10Request request;
@@ -131,7 +132,7 @@ public class JsonRpcEndpoint {
                             cc.getFuture().cancel(false);
                         }
                     }
-                },REAPER_INTERVAL, TimeUnit.MILLISECONDS);
+                }, reaperInterval, TimeUnit.MILLISECONDS);
 
                 nettyChannel.writeAndFlush(requestString);
 
@@ -229,4 +230,9 @@ public class JsonRpcEndpoint {
     public Map<String, CallContext> getMethodContext() {
         return methodContext;
     }
+
+    public static void setReaperInterval(int interval) {
+        reaperInterval = interval;
+        LOG.info("Ovsdb Rpc Task interval is set to {} millisecond", reaperInterval);
+    }
 }