diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java index 4dafbeccd..047ffc671 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/InformationCollector.java @@ -105,6 +105,7 @@ public class InformationCollector implements XMLReadable, XMLWriter { private static final String ATTR_USER_NAME = "username"; private static final String ATTR_UUID = "uuid"; private static final String ATTR_FUNCTION_ARRAY = "functionArray"; + private static final int MAX_EACH_REQUEST_RECORD_COUNT = 200; private static InformationCollector collector; @@ -242,14 +243,22 @@ public class InformationCollector implements XMLReadable, XMLWriter { boolean success = false; FineLoggerFactory.getLogger().info("Start sent function records to the cloud center..."); String url = CloudCenter.getInstance().acquireUrlByKind(TABLE_FUNCTION_RECORD); - if(content.length() > 0){ - success = sendFunctionRecord(url, content); + try { + for(int i=0;i 0){ + success = sendFunctionRecord(url, functionArray); + } + } //服务器返回true, 说明已经获取成功, 更新最后一次发送时间 if (success) { this.lastTime = dateToString(); FineLoggerFactory.getLogger().info("Function records successfully sent to the cloud center."); } + }catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); } + // //先将发送压缩文件这段代码注释,之后提任务 //大数据量下发送压缩zip数据不容易丢失 // try { @@ -443,34 +452,52 @@ public class InformationCollector implements XMLReadable, XMLWriter { } public static JSONArray getFunctionsContent(Date current, Date last) throws JSONException{ + //记录当前条数,达到200条合并成一个请求 + int count = 0; JSONArray functionArray = new JSONArray(); QueryCondition condition = QueryFactory.create() .addRestriction(RestrictionFactory.lte(COLUMN_TIME, current)) .addRestriction(RestrictionFactory.gte(COLUMN_TIME, last)); try { DataList focusPoints = MetricRegistry.getMetric().find(FocusPoint.class,condition); - + JSONArray temp = new JSONArray(); if(!focusPoints.isEmpty()){ - for(FocusPoint focusPoint : focusPoints.getList()){ - com.fr.json.JSONObject record = new com.fr.json.JSONObject(); - record.put(ATTR_ID, focusPoint.getId()); - record.put(ATTR_TEXT, focusPoint.getText()); - record.put(ATTR_SOURCE, focusPoint.getSource()); - record.put(ATTR_TIME, focusPoint.getTime().getTime()); - record.put(ATTR_TITLE, focusPoint.getTitle()); - record.put(ATTR_USER_NAME, MarketConfig.getInstance().getBbsUsername()); - record.put(ATTR_UUID, DesignerEnvManager.getEnvManager().getUUID()); - record.put(ATTR_FUNCTION_ARRAY, functionArray); - functionArray.put(record); + for(int i=0;i< focusPoints.getList().size();i++){ + FocusPoint focusPoint = focusPoints.getList().get(i); + if(focusPoint != null){ + if((++count <= MAX_EACH_REQUEST_RECORD_COUNT)){ + temp.put(getOneRecord(focusPoint)); + } else { + count = 0; + functionArray.put(temp); + temp = new JSONArray(); + temp.put(getOneRecord(focusPoint)); + } + if(i == (focusPoints.getList().size() -1)){ + functionArray.put(temp); + } + } } } - } catch (MetricException e) { + } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } return functionArray; } + private static JSONObject getOneRecord(FocusPoint focusPoint) throws JSONException{ + com.fr.json.JSONObject record = new com.fr.json.JSONObject(); + record.put(ATTR_ID, focusPoint.getId()); + record.put(ATTR_TEXT, focusPoint.getText()); + record.put(ATTR_SOURCE, focusPoint.getSource()); + record.put(ATTR_TIME, focusPoint.getTime().getTime()); + record.put(ATTR_TITLE, focusPoint.getTitle()); + record.put(ATTR_USER_NAME, MarketConfig.getInstance().getBbsUsername()); + record.put(ATTR_UUID, DesignerEnvManager.getEnvManager().getUUID()); + return record; + } + private class StartStopTime implements XMLReadable, XMLWriter { private String startDate;