aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java')
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java50
1 files changed, 47 insertions, 3 deletions
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java b/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
index a167872..e809b45 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* son-handler
* ================================================================================
- * Copyright (C) 2019 Wipro Limited.
+ * Copyright (C) 2019-2020 Wipro Limited.
* ==============================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,11 +21,27 @@
package org.onap.dcaegen2.services.sonhms;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+
import javax.annotation.PostConstruct;
+import org.onap.dcaegen2.services.sonhms.child.ChildThread;
+import org.onap.dcaegen2.services.sonhms.child.Graph;
+import org.onap.dcaegen2.services.sonhms.dao.FixedPciCellsRepository;
+import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
+import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
+import org.onap.dcaegen2.services.sonhms.utils.ThreadUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@@ -42,8 +58,6 @@ public class MainThreadComponent {
@Autowired
private NewFmNotification newFmNotification;
-
-
/**
* main thread initialization.
*/
@@ -55,4 +69,34 @@ public class MainThreadComponent {
Thread pmThread = new Thread(new PmThread(newPmNotification));
pmThread.start();
}
+
+ @Scheduled(fixedRate = 300000, initialDelay = 60000)
+ public void checkFixedPciTable() {
+ log.info("Inside checkFixedPciTable method");
+ FixedPciCellsRepository fixedPciCellsRepository = BeanUtil.getBean(FixedPciCellsRepository.class);
+ List<String> fixedPciCellsList = fixedPciCellsRepository.getFixedPciCells();
+ if (!fixedPciCellsList.isEmpty()) {
+ log.info("Fixed Pci table not empty");
+ Timestamp lastInvokedOofTimeStamp = ChildThread.getLastInvokedOofTimeStamp();
+ Timestamp fixedPciCreatedAt = fixedPciCellsRepository.getTimeStampforFixedPci();
+ Long difference = fixedPciCreatedAt.getTime() - lastInvokedOofTimeStamp.getTime();
+ Configuration configuration = Configuration.getInstance();
+
+ if (difference > configuration.getPolicyFixedPciTimeInterval()) {
+ log.info("Creating new child thread for sending fixedPciCells");
+ List<Graph> cluster = new ArrayList<>();
+ BlockingQueue<List<String>> childStatusQueue = new LinkedBlockingQueue<>();
+ EventHandler eventHandler = new EventHandler(childStatusQueue,
+ Executors.newFixedThreadPool(Configuration.getInstance().getMaximumClusters()), new HashMap<>(),
+ new ClusterUtils(), new ThreadUtils());
+ ExecutorService pool = Executors.newFixedThreadPool(5);
+ ThreadUtils threadUtils = new ThreadUtils();
+ boolean result = threadUtils.createNewThread(cluster, childStatusQueue, pool, eventHandler, null);
+ log.info("Child Thread creation result:"+ result);
+ }
+
+ } else {
+ log.info("Exiting function fixedPci table empty");
+ }
+ }
}