This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 34b63ae  Make persistent period configurable. (#3070)
34b63ae is described below

commit 34b63ae1358d3176c7b87f067d06d7b1a58f0902
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Sun Jul 14 16:13:32 2019 +0800

    Make persistent period configurable. (#3070)
---
 .../org/apache/skywalking/oap/server/core/CoreModuleConfig.java   | 5 +++++
 .../org/apache/skywalking/oap/server/core/CoreModuleProvider.java | 2 +-
 .../skywalking/oap/server/core/storage/PersistenceTimer.java      | 8 +++-----
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
index 908b22d..7d4c3ab 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
@@ -38,6 +38,11 @@ public class CoreModuleConfig extends ModuleConfig {
     @Setter private int maxConcurrentCallsPerConnection;
     @Setter private int maxMessageSize;
     private final List<String> downsampling;
+    /**
+     * The period of doing data persistence.
+     * Unit is second.
+     */
+    @Setter private long persistentPeriod = 3;
     @Setter private boolean enableDataKeeperExecutor = true;
     @Setter private int recordDataTTL;
     @Setter private int minuteMetricsDataTTL;
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
index 01ddd9f..5c60cd3 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
@@ -179,7 +179,7 @@ public class CoreModuleProvider extends ModuleProvider {
             
this.getManager().find(ClusterModule.NAME).provider().getService(ClusterRegister.class).registerRemote(gRPCServerInstance);
         }
 
-        PersistenceTimer.INSTANCE.start(getManager());
+        PersistenceTimer.INSTANCE.start(getManager(), moduleConfig);
 
         if (moduleConfig.isEnableDataKeeperExecutor()) {
             DataTTLKeeperTimer.INSTANCE.start(getManager());
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
index 4aa3929..c26e11b 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.core.storage;
 import java.util.*;
 import java.util.concurrent.*;
 import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
+import org.apache.skywalking.oap.server.core.CoreModuleConfig;
 import org.apache.skywalking.oap.server.core.analysis.worker.*;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
@@ -45,11 +46,8 @@ public enum PersistenceTimer {
         this.debug = System.getProperty("debug") != null;
     }
 
-    public void start(ModuleManager moduleManager) {
+    public void start(ModuleManager moduleManager, CoreModuleConfig 
moduleConfig) {
         logger.info("persistence timer start");
-        //TODO timer value config
-//        final long timeInterval = EsConfig.Es.Persistence.Timer.VALUE * 1000;
-        final long timeInterval = 3;
         IBatchDAO batchDAO = 
moduleManager.find(StorageModule.NAME).provider().getService(IBatchDAO.class);
 
         MetricsCreator metricsCreator = 
moduleManager.find(TelemetryModule.NAME).provider().getService(MetricsCreator.class);
@@ -63,7 +61,7 @@ public enum PersistenceTimer {
         if (!isStarted) {
             Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(
                 new RunnableWithExceptionProtection(() -> 
extractDataAndSave(batchDAO),
-                    t -> logger.error("Extract data and save failure.", t)), 
1, timeInterval, TimeUnit.SECONDS);
+                    t -> logger.error("Extract data and save failure.", t)), 
1, moduleConfig.getPersistentPeriod(), TimeUnit.SECONDS);
 
             this.isStarted = true;
         }

Reply via email to