From 2422c44a61a12f1cdfc046c6d08a569fa6b4baf9 Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Fri, 4 Jan 2019 17:31:55 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-13673=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E6=94=B6=E9=9B=86=E4=BF=A1=E6=81=AF=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=A4=AA=E5=A4=9A=EF=BC=8C=E8=A6=81=E4=B9=88=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=B5=B7=E6=9D=A5=E5=8F=91=E9=80=81zip=E5=88=B0?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=EF=BC=8C=E8=A6=81=E4=B9=88=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E5=B0=B1=E6=8B=92=E6=94=B6=E4=BA=86=20200=E6=9D=A1=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E4=B8=BA1=E4=B8=AA=E8=AF=B7=E6=B1=82=E5=8F=91?= =?UTF-8?q?=E9=80=81=EF=BC=9B=20=E5=8F=91=E9=80=81=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E7=BC=93=E5=AD=98=E6=96=87=E4=BB=B6=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../errorinfo/ErrorInfoUploader.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoUploader.java b/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoUploader.java index 42298b812..fb5c2aeb9 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoUploader.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/errorinfo/ErrorInfoUploader.java @@ -8,6 +8,7 @@ import com.fr.general.GeneralContext; import com.fr.general.IOUtils; import com.fr.general.http.HttpResponseType; import com.fr.general.http.HttpToolbox; +import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.license.function.VT4FR; import com.fr.log.FineLoggerFactory; @@ -21,7 +22,9 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; /** * Created by Administrator on 2017/7/24 0024. @@ -35,6 +38,9 @@ public class ErrorInfoUploader { // 在一台不能上网的电脑里发现了10w个errorinfo... private static final int MAX_ERROR_SIZE = 2000; + //单次发送的错误信息最大条数 + private static final int MAX_ITEMS = 200; + static { GeneralContext.addEnvChangedListener(new EnvChangedListener() { @Override @@ -142,21 +148,28 @@ public class ErrorInfoUploader { try { if (ArrayUtils.isNotEmpty(files)) { + JSONArray jsonArray = new JSONArray(); + List tempFiles = new ArrayList<>(); + int count = 0; for (File file : files) { + count++; String filePath = file.getPath(); String suffix = filePath.substring(filePath.lastIndexOf(".")); if (suffix.endsWith(SUFFIX)) { - Thread.sleep(1000L); String content = IOUtils.inputStream2String(new FileInputStream(file)); if (content.length() > MAX_ERROR_SIZE) { CommonIOUtils.deleteFile(file); continue; } - - String url = CloudCenter.getInstance().acquireUrlByKind("design.error"); - if (sendErrorInfo(url, content)) { - CommonIOUtils.deleteFile(file); + jsonArray.put(new JSONObject(content)); + tempFiles.add(file); + if( jsonArray.length() == MAX_ITEMS || count == files.length){ + String url = CloudCenter.getInstance().acquireUrlByKind("design.error"); + if(sendErrorInfo(url, jsonArray)){ + deleteFiles(tempFiles); + } + jsonArray = new JSONArray(); } } } @@ -166,7 +179,13 @@ public class ErrorInfoUploader { } } - private boolean sendErrorInfo(String url, String content) { + private void deleteFiles(List files) { + for(File file : files) { + CommonIOUtils.deleteFile(file); + } + } + + private boolean sendErrorInfo(String url, JSONArray content) { HashMap para = new HashMap<>(); para.put("token", SiteCenterToken.generateToken()); para.put("content", content);