You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ti...@apache.org on 2021/01/04 06:50:34 UTC

[servicecomb-service-center] branch master updated: 更新DumpCache接口 (#804)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f4263ea  更新DumpCache接口 (#804)
f4263ea is described below

commit f4263ea3503cfc5ac6ab140c53ad480842aa3f7c
Author: lilai23 <46...@users.noreply.github.com>
AuthorDate: Mon Jan 4 14:50:26 2021 +0800

    更新DumpCache接口 (#804)
    
    mongo缓存用go-cache重构实现后变更了foreach方法,因此更新DumpCache接口
---
 datasource/mongo/system.go | 15 +++++++++------
 go.mod                     |  1 +
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/datasource/mongo/system.go b/datasource/mongo/system.go
index 3356920..ab69149 100644
--- a/datasource/mongo/system.go
+++ b/datasource/mongo/system.go
@@ -25,6 +25,7 @@ import (
 	"github.com/apache/servicecomb-service-center/pkg/dump"
 	"github.com/apache/servicecomb-service-center/pkg/gopool"
 	"github.com/apache/servicecomb-service-center/pkg/util"
+	"github.com/patrickmn/go-cache"
 )
 
 func (ds *DataSource) DumpCache(ctx context.Context) *dump.Cache {
@@ -46,10 +47,11 @@ func (ds *DataSource) DUnlock(ctx context.Context, request *datasource.DUnlockRe
 
 func setServiceValue(e *sd.MongoCacher, setter dump.Setter) {
 	e.Cache().ForEach(func(k string, kv interface{}) (next bool) {
+		service := kv.(cache.Item).Object.(sd.Service)
 		setter.SetValue(&dump.KV{
-			Key: util.StringJoin([]string{datasource.ServiceKeyPrefix, kv.(sd.Service).Domain,
-				kv.(sd.Service).Project, k}, datasource.SPLIT),
-			Value: kv.(sd.Service).ServiceInfo,
+			Key: util.StringJoin([]string{datasource.ServiceKeyPrefix, service.Domain, service.Project, k},
+				datasource.SPLIT),
+			Value: service.ServiceInfo,
 		})
 		return true
 	})
@@ -57,10 +59,11 @@ func setServiceValue(e *sd.MongoCacher, setter dump.Setter) {
 
 func setInstanceValue(e *sd.MongoCacher, setter dump.Setter) {
 	e.Cache().ForEach(func(k string, kv interface{}) (next bool) {
+		instance := kv.(cache.Item).Object.(sd.Instance)
 		setter.SetValue(&dump.KV{
-			Key: util.StringJoin([]string{datasource.InstanceKeyPrefix, kv.(sd.Instance).Domain,
-				kv.(sd.Instance).Project, kv.(sd.Instance).InstanceInfo.ServiceId, k}, datasource.SPLIT),
-			Value: kv.(sd.Instance).InstanceInfo,
+			Key: util.StringJoin([]string{datasource.InstanceKeyPrefix, instance.Domain, instance.Project,
+				instance.InstanceInfo.ServiceId, k}, datasource.SPLIT),
+			Value: instance.InstanceInfo,
 		})
 		return true
 	})
diff --git a/go.mod b/go.mod
index ace45b6..0fcc368 100644
--- a/go.mod
+++ b/go.mod
@@ -42,6 +42,7 @@ require (
 	github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 // indirect
 	github.com/opentracing/opentracing-go v1.1.0
 	github.com/openzipkin/zipkin-go-opentracing v0.3.3-0.20180123190626-6bb822a7f15f
+	github.com/patrickmn/go-cache v2.1.0+incompatible
 	github.com/pkg/errors v0.9.1
 	github.com/prometheus/client_golang v0.9.1
 	github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4