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/servicecomb-service-center.git


The following commit(s) were added to refs/heads/master by this push:
     new cce8cb2  fix heartbeat trigger update event problem (#946)
cce8cb2 is described below

commit cce8cb24d3f379684bf9679b862e476ac58be6d8
Author: panqian <[email protected]>
AuthorDate: Wed Apr 14 16:05:26 2021 +0800

    fix heartbeat trigger update event problem (#946)
---
 datasource/mongo/sd/listwatch_inner.go | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/datasource/mongo/sd/listwatch_inner.go 
b/datasource/mongo/sd/listwatch_inner.go
index 9ae8f4f..da4612e 100644
--- a/datasource/mongo/sd/listwatch_inner.go
+++ b/datasource/mongo/sd/listwatch_inner.go
@@ -71,8 +71,13 @@ func (lw *mongoListWatch) DoWatch(ctx context.Context, f 
func(*sdcommon.ListWatc
        if resumeToken != nil {
                csOptions.SetResumeAfter(resumeToken)
        }
-
-       resp, err := client.GetMongoClient().Watch(ctx, lw.Key, md.Pipeline{}, 
csOptions)
+       pipline := md.Pipeline{}
+       if lw.Key == instance {
+               // ignore instance refresh_time change event for avoid 
meaningless instance push.
+               match := 
bson.D{{"updateDescription.updatedFields.refresh_time", bson.D{{"$exists", 
false}}}}
+               pipline = md.Pipeline{{{"$match", match}}}
+       }
+       resp, err := client.GetMongoClient().Watch(ctx, lw.Key, pipline, 
csOptions)
 
        if err != nil {
                log.Error(fmt.Sprintf("watch table %s failed", lw.Key), err)

Reply via email to