From 682a4cc6f136dfcfaafc1ec33726b9cb9409bc43 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Sun, 31 Jul 2016 13:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=BA=8F=E5=88=97=E5=8C=96?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E6=88=90=E5=8A=9F=E5=90=8E=E7=9A=84=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../peresistent/PersistenceThread.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java index cfc6ea5bb..dc88d939f 100644 --- a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java +++ b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/peresistent/PersistenceThread.java @@ -12,10 +12,12 @@ import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; -public class PersistenceThread extends Thread { +public class PersistenceThread extends Thread { private Logger logger = LogManager.getLogger(PersistenceThread.class); private File bufferFile = null; @@ -43,7 +45,7 @@ public class PersistenceThread extends Thread { BufferFileReader bufferReader = new BufferFileReader(bufferFile, offset); while (bufferReader.hasNext()) { List serializableDataList = bufferReader.next(); - //handleSpans(spans); + handleSpans(categorySerializableData(serializableDataList)); } try { @@ -61,6 +63,21 @@ public class PersistenceThread extends Thread { } } + private Map> categorySerializableData(List serializableDataList) { + Map> result = new HashMap>(); + for (AbstractDataSerializable serializableData : serializableDataList){ + List specialTypeSerializableData = result.get(serializableData.getDataType()); + if (specialTypeSerializableData == null){ + specialTypeSerializableData = new ArrayList(); + result.put(serializableData.getDataType(), specialTypeSerializableData); + } + + specialTypeSerializableData.add(serializableData); + } + + return result; + } + private int acquireOffset() { int offset; offset = MemoryRegister.instance().getOffSet(bufferFile.getName());