ed9b9af3f6926dd2d32186be31f33b9b484c0faf
[holmes/rule-management.git] / rulemgt / src / main / java / org / onap / holmes / rulemgt / msb / MsbQuery.java
1 /**
2  * Copyright 2017 ZTE Corporation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.holmes.rulemgt.msb;
17
18 import lombok.extern.slf4j.Slf4j;
19 import org.jvnet.hk2.annotations.Service;
20 import org.onap.holmes.rulemgt.send.RuleAllocation;
21 import org.onap.holmes.rulemgt.send.Ip4AddingRule;
22 import org.onap.holmes.rulemgt.wrapper.RuleMgtWrapper;
23
24 import javax.annotation.PostConstruct;
25 import javax.inject.Inject;
26 import java.util.List;
27 import java.util.Timer;
28 import java.util.TimerTask;
29
30
31 @Service
32 @Slf4j
33 public class MsbQuery {
34
35     @Inject
36     private RuleAllocation ruleAllocation;
37
38     @Inject
39     private Ip4AddingRule ip4AddingRule;
40
41     @Inject
42     private EngineIpList engineIpList;
43
44     @Inject
45     private RuleMgtWrapper ruleMgtWrapper;
46
47     private  List<String> timerIpList;
48
49     @PostConstruct
50     public void init() {
51
52         try{
53             timer();
54         }catch(Exception e){
55             log.error("MSBQuery init timer task failed !" + e.getMessage());
56         }
57
58     }
59
60     public void timer() throws Exception{
61         Timer timer = new Timer();
62         timer.schedule(new TimerTask() {
63
64             public void run() {
65                 try {
66                     timerIpList = engineIpList.getServiceCount();
67                     ip4AddingRule.getIpList(timerIpList);
68                     ruleAllocation.judgeAndAllocateRule(timerIpList);
69
70                 } catch (Exception e) {
71                     log.error("The timing query engine instance failed " ,e);
72                 }
73             }
74
75         }, 5000, 30000);
76
77     }
78
79 }