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

littlecui pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-servicecomb-service-center.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f71782  SCB-129 Configurable compact interval (#227)
4f71782 is described below

commit 4f71782e2aeed629c25270fba96a57e374782ed1
Author: little-cui <[email protected]>
AuthorDate: Tue Dec 26 20:09:43 2017 +0800

    SCB-129 Configurable compact interval (#227)
---
 etc/conf/app.conf             |  3 ++-
 server/core/info.go           |  1 +
 server/core/proto/services.go |  1 +
 server/server.go              | 10 ++++++++--
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/etc/conf/app.conf b/etc/conf/app.conf
index cd78a03..1799c30 100644
--- a/etc/conf/app.conf
+++ b/etc/conf/app.conf
@@ -38,7 +38,8 @@ manager_cluster = "127.0.0.1:2379"
 auto_sync_interval = 30s
 
 #indicate how many revision you want to keep in etcd
-compact_index_delta=100
+compact_index_delta = 100
+compact_interval = 12h
 
 cipher_plugin = ""
 
diff --git a/server/core/info.go b/server/core/info.go
index 54e801a..314c572 100644
--- a/server/core/info.go
+++ b/server/core/info.go
@@ -61,6 +61,7 @@ func newInfo() *pb.ServerInformation {
 
                        AutoSyncInterval:  
beego.AppConfig.DefaultString("auto_sync_interval", "30s"),
                        CompactIndexDelta: 
beego.AppConfig.DefaultInt64("compact_index_delta", 100),
+                       CompactInterval:   
beego.AppConfig.DefaultString("compact_interval", "12h"),
 
                        LoggerName:     
beego.AppConfig.String("component_name"),
                        LogRotateSize:  maxLogFileSize,
diff --git a/server/core/proto/services.go b/server/core/proto/services.go
index 23ba8b4..cf6ea39 100644
--- a/server/core/proto/services.go
+++ b/server/core/proto/services.go
@@ -101,6 +101,7 @@ type ServerConfig struct {
 
        AutoSyncInterval  string `json:"autoSyncInterval"`
        CompactIndexDelta int64  `json:"compactIndexDelta"`
+       CompactInterval   string `json:"compactInterval"`
 
        LoggerName     string `json:"-"`
        LogRotateSize  int64  `json:"logRotateSize"`
diff --git a/server/server.go b/server/server.go
index 2f95922..b8ab6f5 100644
--- a/server/server.go
+++ b/server/server.go
@@ -114,13 +114,19 @@ func (s *ServiceCenterServer) autoCompactBackend() {
        if delta <= 0 {
                return
        }
+       interval, err := 
time.ParseDuration(core.ServerInfo.Config.CompactInterval)
+       if err != nil {
+               util.Logger().Errorf(err, "invalid compact interval %s, reset 
to default interval 12h", core.ServerInfo.Config.CompactInterval)
+               interval = 12 * time.Hour
+       }
        util.Go(func(stopCh <-chan struct{}) {
-               util.Logger().Infof("start the automatic compact mechanism, 
compact once every 12h")
+               util.Logger().Infof("start the automatic compact mechanism, 
compact once every %s",
+                       core.ServerInfo.Config.CompactInterval)
                for {
                        select {
                        case <-stopCh:
                                return
-                       case <-time.After(12 * time.Hour):
+                       case <-time.After(interval):
                                lock, err := mux.Try(mux.GLOBAL_LOCK)
                                if lock == nil {
                                        util.Logger().Warnf(err, "can not 
compact backend by this service center instance now")

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to