aboutsummaryrefslogtreecommitdiffstats
path: root/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java')
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java
new file mode 100644
index 0000000..84ea286
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java
@@ -0,0 +1,59 @@
+package org.onap.msb.apiroute.wrapper.queue;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.BlockingQueue;
+
+import org.apache.http.HttpEntity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ServiceListQueue extends BaseQueue<HttpEntity> {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ServiceListQueue.class);
+
+
+ private static final int SERVICE_LIST_DATA_QUEUE_NUM = 1;
+ private static final int SERVICE_LIST_QUEUE_INDEX = 0;
+
+ public ServiceListQueue(final int queueCapacity) {
+ super(SERVICE_LIST_DATA_QUEUE_NUM,queueCapacity);
+ }
+
+ @Override
+ public void put(ServiceData<HttpEntity> data) throws InterruptedException {
+ BlockingQueue<ServiceData<HttpEntity>> queue=getQueue(SERVICE_LIST_QUEUE_INDEX);
+
+ int size=queue.size();
+// LOGGER.info("before put ServiceListQueue[size:"+size+"] success :[service num]"+data.getData().size());
+ //先清空队列
+ if(size>0){
+ queue.clear();
+ }
+ //插入记录
+ queue.put(data);
+
+ }
+
+ @Override
+ public ServiceData<HttpEntity> take(int queueIndex) throws InterruptedException {
+ BlockingQueue<ServiceData<HttpEntity>> queue = getQueue(queueIndex);
+ ServiceData<HttpEntity> serviceData = queue.take();
+ return serviceData;
+
+ /*//取队列最新一条数据
+ if (queue.isEmpty()) {
+ LOGGER.info("take a single serviceData from ServiceListQueue ");
+ return serviceData;
+ } else {
+ List<ServiceData<Map<String, List<String>>>> serviceDataList =
+ new ArrayList<ServiceData<Map<String, List<String>>>>();
+ //一次性从BlockingQueue获取所有数据
+ queue.drainTo(serviceDataList);
+ LOGGER.info("take multiple serviceDatas from ServiceListQueue :[num]"+serviceDataList.size());
+ return serviceDataList.get(serviceDataList.size() - 1);
+ }*/
+ }
+
+
+}