mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	修复多个日志数据库节点分布不平均的问题
This commit is contained in:
		@@ -9,6 +9,7 @@ import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
 | 
			
		||||
	"github.com/iwind/TeaGo/dbs"
 | 
			
		||||
	"github.com/iwind/TeaGo/lists"
 | 
			
		||||
	"github.com/iwind/TeaGo/rands"
 | 
			
		||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
			
		||||
	"hash/crc32"
 | 
			
		||||
	"regexp"
 | 
			
		||||
@@ -78,18 +79,30 @@ func AllAccessLogDBs() []*dbs.DB {
 | 
			
		||||
// 获取获取DAO
 | 
			
		||||
func randomHTTPAccessLogDAO() (dao *HTTPAccessLogDAOWrapper) {
 | 
			
		||||
	accessLogLocker.RLock()
 | 
			
		||||
	defer accessLogLocker.RUnlock()
 | 
			
		||||
	if len(httpAccessLogDAOMapping) == 0 {
 | 
			
		||||
		dao = nil
 | 
			
		||||
	} else {
 | 
			
		||||
		for _, d := range httpAccessLogDAOMapping {
 | 
			
		||||
			dao = d
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	accessLogLocker.RUnlock()
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var daoList = []*HTTPAccessLogDAOWrapper{}
 | 
			
		||||
 | 
			
		||||
	for _, d := range httpAccessLogDAOMapping {
 | 
			
		||||
		daoList = append(daoList, d)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var l = len(daoList)
 | 
			
		||||
	if l == 0 {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if l == 1 {
 | 
			
		||||
		return daoList[0]
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return daoList[rands.Int(0, len(daoList)-1)]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func randomNSAccessLogDAO() (dao *NSAccessLogDAOWrapper) {
 | 
			
		||||
	accessLogLocker.RLock()
 | 
			
		||||
	if len(nsAccessLogDAOMapping) == 0 {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user