From 9f7e6559d3de14efe97b833aed27578c2a51893a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Tue, 23 May 2023 19:17:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=9B=86=E7=BE=A4CC=E9=98=B2?= =?UTF-8?q?=E6=8A=A4=E7=AD=96=E7=95=A5=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/node_tasks.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/internal/nodes/node_tasks.go b/internal/nodes/node_tasks.go index 1b7b921..0d9fc9b 100644 --- a/internal/nodes/node_tasks.go +++ b/internal/nodes/node_tasks.go @@ -80,6 +80,8 @@ func (this *Node) execTask(rpcClient *rpc.RPCClient, task *pb.NodeTask) error { err = this.execUserServersStateChangedTask(rpcClient, task) case "uamPolicyChanged": err = this.execUAMPolicyChangedTask(rpcClient) + case "httpCCPolicyChanged": + err = this.execHTTPCCPolicyChangedTask(rpcClient) case "httpPagesPolicyChanged": err = this.execHTTPPagesPolicyChangedTask(rpcClient) case "updatingServers": @@ -189,6 +191,34 @@ func (this *Node) execUAMPolicyChangedTask(rpcClient *rpc.RPCClient) error { return nil } +// HTTP CC策略变更 +func (this *Node) execHTTPCCPolicyChangedTask(rpcClient *rpc.RPCClient) error { + remotelogs.Println("NODE", "updating http cc policies ...") + resp, err := rpcClient.NodeRPC.FindNodeHTTPCCPolicies(rpcClient.Context(), &pb.FindNodeHTTPCCPoliciesRequest{}) + if err != nil { + return err + } + var httpCCPolicyMap = map[int64]*nodeconfigs.HTTPCCPolicy{} + for _, policy := range resp.HttpCCPolicies { + if len(policy.HttpCCPolicyJSON) > 0 { + var httpCCPolicy = nodeconfigs.NewHTTPCCPolicy() + err = json.Unmarshal(policy.HttpCCPolicyJSON, httpCCPolicy) + if err != nil { + remotelogs.Error("NODE", "decode http cc policy failed: "+err.Error()) + continue + } + err = httpCCPolicy.Init() + if err != nil { + remotelogs.Error("NODE", "initialize http cc policy failed: "+err.Error()) + continue + } + httpCCPolicyMap[policy.NodeClusterId] = httpCCPolicy + } + } + sharedNodeConfig.UpdateHTTPCCPolicies(httpCCPolicyMap) + return nil +} + // 自定义页面策略变更 func (this *Node) execHTTPPagesPolicyChangedTask(rpcClient *rpc.RPCClient) error { remotelogs.Println("NODE", "updating http pages policies ...")