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 e238ec800..9d17daf26 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."); + } + } }