Bläddra i källkod

fixbug 启动时未加载近1小时跳出阈值

gufengshou1 1 år sedan
förälder
incheckning
5caebe602a

+ 21 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/container/PredictPidContainer.java

@@ -86,6 +86,7 @@ public class PredictPidContainer {
     private void loadAndCalIfNeed(){
         loadLambdaFile();
         OSSObject dCpaFileOjb=client.getObject(bucketName,dThresholdFileName);
+        loadLatestThresholdCache(dCpaFileOjb);
         if(cacheDate==null||dCpaFileOjb.getObjectMetadata().getLastModified().after(cacheDate)){
             calNewLambda(dCpaFileOjb);
             writeLambdaFileToOss();
@@ -115,6 +116,26 @@ public class PredictPidContainer {
         }
     }
 
+    private void loadLatestThresholdCache(OSSObject object) {
+        try {
+            InputStream is=object.getObjectContent();
+            InputStreamReader isr=new InputStreamReader(is);
+            BufferedReader bufferedReader = new BufferedReader(isr);
+            String line = null;
+            while ((line = bufferedReader.readLine()) != null){
+                try {
+                    String[] cols=line.split(",");
+                    String group=cols[0].trim();
+                    latestThresholdCache.put(group,Double.parseDouble(cols[4].trim()));
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+        }catch (Exception e){
+            log.error("svc=calNewPredictLambda status=failed error={}", Arrays.toString(e.getStackTrace()));
+        }
+    }
+
     private void writeLambdaFileToOss(){
         //先不考虑各种更新失败及重复更新问题。
         try {