From 5297a4ce38885461ceeb15e2a90d9ab7bd439906 Mon Sep 17 00:00:00 2001 From: wusheng Date: Mon, 23 Nov 2015 23:13:52 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=8C=81=E4=B9=85=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RegisterPersistenceThread.java | 109 ++++++++++-------- 1 file changed, 63 insertions(+), 46 deletions(-) diff --git a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/persistance/RegisterPersistenceThread.java b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/persistance/RegisterPersistenceThread.java index e238ec8006..9d17daf26c 100644 --- a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/persistance/RegisterPersistenceThread.java +++ b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/persistance/RegisterPersistenceThread.java @@ -4,6 +4,9 @@ import org.apache.commons.io.FileUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import com.ai.cloud.skywalking.reciever.selfexamination.ServerHealthCollector; +import com.ai.cloud.skywalking.reciever.selfexamination.ServerHeathReading; + import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; @@ -14,54 +17,68 @@ import static com.ai.cloud.skywalking.reciever.conf.Config.RegisterPersistence.* public class RegisterPersistenceThread extends Thread { - private Logger logger = LogManager.getLogger(RegisterPersistenceThread.class); + private Logger logger = LogManager + .getLogger(RegisterPersistenceThread.class); - private BufferedWriter writer; + private BufferedWriter writer; - public RegisterPersistenceThread() { - super("RegisterPersistenceThread"); - } + public RegisterPersistenceThread() { + super("RegisterPersistenceThread"); + } - @Override - public void run() { - while (true) { - try { - Thread.sleep(OFFSET_WRITTEN_FILE_WAIT_CYCLE); - } catch (InterruptedException e) { - logger.error("Sleep failure", e); - } - - File file = new File(REGISTER_FILE_PARENT_DIRECTORY, REGISTER_FILE_NAME); - File bakFile = new File(REGISTER_FILE_PARENT_DIRECTORY, REGISTER_BAK_FILE_NAME); - try { - FileUtils.copyFile(file, bakFile); - } catch (IOException e) { - logger.error("Sleep failure", e); - } - - Collection fileRegisterEntries = MemoryRegister.instance().getEntries(); - logger.debug("file Register Entries size [{}]", fileRegisterEntries.size()); - try { - writer = new BufferedWriter(new FileWriter(file)); - } catch (IOException e) { - logger.error("Write The offset file anomalies."); - } - - for (FileRegisterEntry fileRegisterEntry : fileRegisterEntries) { - try { - writer.write(fileRegisterEntry.toString() + "\n"); - } catch (IOException e) { - logger.error("Write file register entry to offset file failure", e); - } - } - try { - writer.write("EOF\n"); - writer.flush(); - writer.close(); - } catch (IOException e) { - logger.error("Flush offset file failure", e); - } + @Override + public void run() { + while (true) { + try { + Thread.sleep(OFFSET_WRITTEN_FILE_WAIT_CYCLE); + } catch (InterruptedException e) { + logger.error("Sleep failure", e); + } - } - } + File file = new File(REGISTER_FILE_PARENT_DIRECTORY, + REGISTER_FILE_NAME); + File bakFile = new File(REGISTER_FILE_PARENT_DIRECTORY, + REGISTER_BAK_FILE_NAME); + try { + FileUtils.copyFile(file, bakFile); + } catch (IOException e) { + logger.error("Sleep failure", e); + } + + Collection fileRegisterEntries = MemoryRegister + .instance().getEntries(); + logger.debug("file Register Entries size [{}]", + fileRegisterEntries.size()); + try { + writer = new BufferedWriter(new FileWriter(file)); + } catch (IOException e) { + logger.error("Write The offset file anomalies."); + } + + for (FileRegisterEntry fileRegisterEntry : fileRegisterEntries) { + try { + writer.write(fileRegisterEntry.toString() + "\n"); + } catch (IOException e) { + logger.error( + "Write file register entry to offset file failure", + e); + } + } + try { + writer.write("EOF\n"); + writer.flush(); + } catch (IOException e) { + logger.error("Flush offset file failure", e); + } finally { + try { + writer.close(); + } catch (IOException e) { + logger.error("close offset file failure", e); + } + } + + ServerHealthCollector.getCurrentHeathReading(null).updateData( + ServerHeathReading.INFO, "flush memory register to file."); + } + } }