From 978757c6cd702684d736ddf733f1d718a8c67060 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期四, 01 八月 2019 21:08:44 +0800
Subject: [PATCH] add es cache change
---
controllers/dbtablesCon.go | 19 +++++++++
discovery/server.go | 13 +++---
service/EnableStatusControlService.go | 19 +++++++++
controllers/dbtableperson.go | 59 +++++++++++++++++++++++++++++
4 files changed, 103 insertions(+), 7 deletions(-)
diff --git a/controllers/dbtableperson.go b/controllers/dbtableperson.go
index 6d7d5c7..3a987c0 100644
--- a/controllers/dbtableperson.go
+++ b/controllers/dbtableperson.go
@@ -1,10 +1,12 @@
package controllers
import (
+ "basic.com/pubsub/protomsg.git"
"encoding/json"
"log"
"strconv"
"time"
+ "webserver/discovery"
"webserver/extend/logger"
"github.com/gin-gonic/gin"
@@ -14,6 +16,7 @@
"webserver/extend/esutil"
"webserver/extend/util"
"webserver/models"
+ esApi "basic.com/pubsub/esutil.git"
)
type DbPersonController struct {
@@ -60,6 +63,17 @@
params := string(personbytes)
logger.Debug("璇锋眰url:%s;\n 璇锋眰鍙傛暟params:%s", url, params)
data, _ := esutil.PutEsDataReq(url, params)
+ if data["_id"] !=""{
+ //閫氱煡姣斿杩涚▼缂撳瓨鏇存柊
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTablePerson,
+ PersonId: personId,
+ TableId: []string{ dbperson.TableId },
+ Feature: dbperson.FaceFeature,
+ Action: protomsg.DbAction_Insert,
+ })
+ }
+
//c.JSON(200, changeEsRespData(data, "娣诲姞浜哄憳鎴愬姛"))
result = changeEsRespData(data, "娣诲姞鎴愬姛")
return result
@@ -97,6 +111,23 @@
result := changeEsRespData(data, "淇敼鎴愬姛")
if result["success"].(bool) {
//code.Success.Message = "淇敼搴曞簱浜哄憳鎴愬姛"
+ if dbperson.Enable == 1 {
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTablePerson,
+ PersonId: dbperson.Id,
+ TableId: []string{ dbperson.TableId },
+ Feature: "",
+ Action: protomsg.DbAction_Insert,
+ })
+ } else {
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTablePerson,
+ PersonId: dbperson.Id,
+ TableId: []string{ dbperson.TableId },
+ Feature: "",
+ Action: protomsg.DbAction_Delete,
+ })
+ }
util.ResponseFormat(c, code.Success, result["data"])
} else {
//code.ServiceInsideError.Message += result["msg"].(string)
@@ -127,6 +158,20 @@
result := changeEsRespData(data, "鍒犻櫎鎴愬姛")
if result["success"].(bool) {
//code.Success.Message = "鍒犻櫎搴曞簱浜哄憳鎴愬姛"
+ //閫氱煡姣斿杩涚▼锛屾浜哄凡鍒犻櫎
+ dbperArr, e := esApi.Dbpersoninfosbyid([]string{uuid}, config.EsInfo.EsIndex.Dbtablepersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
+ if e ==nil && len(dbperArr) > 0{
+ if dbperArr[0].TableId !=""{
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTablePerson,
+ PersonId: uuid,
+ TableId: []string{ dbperArr[0].TableId },
+ Feature: "",
+ Action: protomsg.DbAction_Delete,
+ })
+ }
+ }
+
util.ResponseFormat(c, code.Success, result["data"])
} else {
//code.ServiceInsideError.Message += result["msg"].(string)
@@ -158,6 +203,20 @@
//result := changeEsRespData(data, "鍒犻櫎鎴愬姛")
if data["error"] == nil {
//code.Success.Message = "鍒犻櫎搴曞簱浜哄憳鎴愬姛"
+ dbperArr, e := esApi.Dbpersoninfosbyid(uuids, config.EsInfo.EsIndex.Dbtablepersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
+ if e ==nil && len(dbperArr) > 0{
+ for _,esPer :=range dbperArr {
+ if esPer.TableId !=""{
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTablePerson,
+ PersonId: esPer.Id,
+ TableId: []string{ esPer.TableId },
+ Feature: "",
+ Action: protomsg.DbAction_Delete,
+ })
+ }
+ }
+ }
util.ResponseFormat(c, code.Success, "鍒犻櫎搴曞簱浜哄憳鎴愬姛")
} else {
//code.ServiceInsideError.Message += result["msg"].(string)
diff --git a/controllers/dbtablesCon.go b/controllers/dbtablesCon.go
index e942fc8..d3f9f89 100644
--- a/controllers/dbtablesCon.go
+++ b/controllers/dbtablesCon.go
@@ -2,12 +2,14 @@
import (
"basic.com/dbapi.git"
+ "basic.com/pubsub/protomsg.git"
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"github.com/satori/go.uuid"
"log"
"time"
+ "webserver/discovery"
"webserver/extend/code"
"webserver/extend/config"
"webserver/extend/esutil"
@@ -100,6 +102,23 @@
result := changeEsRespData(data, "淇敼鎴愬姛")
if result["success"].(bool) {
//code.Success.Message = "淇敼搴曞簱鎴愬姛"
+ if dbtable.Enable ==1 {
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTable,
+ PersonId: "",
+ TableId: []string{ dbtable.Id },
+ Feature: "",
+ Action: protomsg.DbAction_Insert,
+ })
+ } else {
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTable,
+ PersonId: "",
+ TableId: []string{ dbtable.Id },
+ Feature: "",
+ Action: protomsg.DbAction_Delete,
+ })
+ }
util.ResponseFormat(c, code.Success, result["data"])
} else {
//code.ServiceInsideError.Message += result["msg"].(string)
diff --git a/discovery/server.go b/discovery/server.go
index cedfc10..52ac5d3 100644
--- a/discovery/server.go
+++ b/discovery/server.go
@@ -3,10 +3,9 @@
import (
"basic.com/pubsub/protomsg.git"
"basic.com/valib/gopherdiscovery.git"
- "fmt"
+ "github.com/gogo/protobuf/proto"
"time"
"webserver/extend/logger"
- "github.com/gogo/protobuf/proto"
)
const (
@@ -16,7 +15,7 @@
//鍚姩discovery鐨剆erver
var discoveryServer *gopherdiscovery.DiscoveryServer
-var dbChangeChan chan *protomsg.DbChangeMessage
+var dbChangeChan chan *protomsg.EsPersonCacheChange
func StartServer() {
var clients []string
var err error
@@ -34,7 +33,7 @@
logger.Debug("err:",err)
logger.Debug("clients: ",clients)
- dbChangeChan = make(chan *protomsg.DbChangeMessage)
+ dbChangeChan = make(chan *protomsg.EsPersonCacheChange)
for {
select {
@@ -45,14 +44,14 @@
}
//骞挎挱鏁版嵁搴撴敼鍙樼殑msg
-func publishMessage(msg *protomsg.DbChangeMessage) {
+func publishMessage(msg *protomsg.EsPersonCacheChange) {
sendBytes,err := proto.Marshal(msg)
if err ==nil{
discoveryServer.PublishMsg(string(sendBytes))
}
}
-func AddDbMessage(msg *protomsg.DbChangeMessage) {
- fmt.Println("MSG In")
+func AddDbMessage(msg *protomsg.EsPersonCacheChange) {
+ logger.Debug("MSG EsPersonCacheChange In")
dbChangeChan<-msg
}
\ No newline at end of file
diff --git a/service/EnableStatusControlService.go b/service/EnableStatusControlService.go
index a7dae12..7206b0b 100644
--- a/service/EnableStatusControlService.go
+++ b/service/EnableStatusControlService.go
@@ -2,11 +2,13 @@
import (
"basic.com/dbapi.git"
+ "basic.com/pubsub/protomsg.git"
"encoding/json"
"fmt"
"strconv"
"strings"
"time"
+ "webserver/discovery"
"webserver/extend/config"
"webserver/extend/esutil"
"webserver/extend/logger"
@@ -117,6 +119,23 @@
}
if middle > 0 {
logger.Debug("淇敼鎴愬姛")
+ if flag {//鐢熸晥鐨�
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTable,
+ PersonId: "",
+ TableId: id,
+ Feature: "",
+ Action: protomsg.DbAction_Insert,
+ })
+ } else {//澶辨晥鐨�
+ discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
+ Type: protomsg.EsCacheChanged_T_DbTable,
+ PersonId: "",
+ TableId: id,
+ Feature: "",
+ Action: protomsg.DbAction_Insert,
+ })
+ }
message = "淇敼鎴愬姛"
}
return message
--
Gitblit v1.8.0