MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / onReload

Method onReload

internal/nodes/node.go:880–1047  ·  view source on GitHub ↗

重载配置调用

(config *nodeconfigs.NodeConfig, reloadAll bool)

Source from the content-addressed store, hash-verified

878
879// 重载配置调用
880func (this *Node) onReload(config *nodeconfigs.NodeConfig, reloadAll bool) {
881 nodeconfigs.ResetNodeConfig(config)
882 sharedNodeConfig = config
883
884 // 并发读写数
885 fsutils.ReaderLimiter.SetThreads(config.MaxConcurrentReads)
886 fsutils.WriterLimiter.SetThreads(config.MaxConcurrentWrites)
887
888 if reloadAll {
889 // 缓存策略
890 var subDirs = config.CacheDiskSubDirs
891 for _, subDir := range subDirs {
892 subDir.Path = filepath.Clean(subDir.Path)
893 }
894 if len(subDirs) > 0 {
895 sort.Slice(subDirs, func(i, j int) bool {
896 return subDirs[i].Path < subDirs[j].Path
897 })
898 }
899
900 var cachePoliciesChanged = !jsonutils.Equal(caches.SharedManager.MaxDiskCapacity, config.MaxCacheDiskCapacity) ||
901 !jsonutils.Equal(caches.SharedManager.MaxMemoryCapacity, config.MaxCacheMemoryCapacity) ||
902 !jsonutils.Equal(caches.SharedManager.MainDiskDir, config.CacheDiskDir) ||
903 !jsonutils.Equal(caches.SharedManager.SubDiskDirs, subDirs) ||
904 !jsonutils.Equal(this.oldHTTPCachePolicies, config.HTTPCachePolicies)
905
906 caches.SharedManager.MaxDiskCapacity = config.MaxCacheDiskCapacity
907 caches.SharedManager.MaxMemoryCapacity = config.MaxCacheMemoryCapacity
908 caches.SharedManager.MainDiskDir = config.CacheDiskDir
909 caches.SharedManager.SubDiskDirs = subDirs
910
911 if cachePoliciesChanged {
912 // copy
913 this.oldHTTPCachePolicies = []*serverconfigs.HTTPCachePolicy{}
914 err := jsonutils.Copy(&this.oldHTTPCachePolicies, config.HTTPCachePolicies)
915 if err != nil {
916 remotelogs.Error("NODE", "onReload: copy HTTPCachePolicies failed: "+err.Error())
917 }
918
919 // update
920 if len(config.HTTPCachePolicies) > 0 {
921 caches.SharedManager.UpdatePolicies(config.HTTPCachePolicies)
922 } else {
923 caches.SharedManager.UpdatePolicies([]*serverconfigs.HTTPCachePolicy{})
924 }
925 }
926 }
927
928 // WAF策略
929 // 包含了服务里的WAF策略,所以需要整体更新
930 var allFirewallPolicies = config.FindAllFirewallPolicies()
931 if !jsonutils.Equal(allFirewallPolicies, this.oldHTTPFirewallPolicies) {
932 // copy
933 this.oldHTTPFirewallPolicies = []*firewallconfigs.HTTPFirewallPolicy{}
934 err := jsonutils.Copy(&this.oldHTTPFirewallPolicies, allFirewallPolicies)
935 if err != nil {
936 remotelogs.Error("NODE", "onReload: copy HTTPFirewallPolicies failed: "+err.Error())
937 }

Callers 3

StartMethod · 0.95
syncConfigMethod · 0.95
reloadServerMethod · 0.95

Calls 13

changeAPINodeAddrsMethod · 0.95
reloadIPLibraryMethod · 0.95
EqualFunction · 0.92
CopyFunction · 0.92
ErrorFunction · 0.92
PrintlnFunction · 0.92
SetThreadsMethod · 0.80
UpdateActionsMethod · 0.80
UpdateMethod · 0.80
CleanMethod · 0.45
ErrorMethod · 0.45
UpdatePoliciesMethod · 0.45

Tested by

no test coverage detected