From 3a56282a0be20a9d442caf100e90eba468500b38 Mon Sep 17 00:00:00 2001 From: boyce Date: Tue, 19 Mar 2024 09:00:20 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BC=98=E5=8C=96httpclient=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../httpclientmodule/httpclientpoolmodule.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/sysmodule/httpclientmodule/httpclientpoolmodule.go b/sysmodule/httpclientmodule/httpclientpoolmodule.go index 2f55b10..d3d1e1d 100644 --- a/sysmodule/httpclientmodule/httpclientpoolmodule.go +++ b/sysmodule/httpclientmodule/httpclientpoolmodule.go @@ -43,7 +43,15 @@ func (slf *SyncHttpResponse) Get(timeoutMs int) HttpResponse { } } -func (m *HttpClientModule) Init(maxpool int, proxyUrl string) { +func (m *HttpClientModule) InitHttpClient(transport http.RoundTripper,timeout time.Duration,checkRedirect func(req *http.Request, via []*http.Request) error){ + m.client = &http.Client{ + Transport: transport, + Timeout: timeout, + CheckRedirect: checkRedirect, + } +} + +func (m *HttpClientModule) Init(proxyUrl string, maxpool int, dialTimeout time.Duration,dialKeepAlive time.Duration,idleConnTimeout time.Duration,timeout time.Duration) { type ProxyFun func(_ *http.Request) (*url.URL, error) var proxyFun ProxyFun if proxyUrl != "" { @@ -55,16 +63,16 @@ func (m *HttpClientModule) Init(maxpool int, proxyUrl string) { m.client = &http.Client{ Transport: &http.Transport{ DialContext: (&net.Dialer{ - Timeout: 5 * time.Second, - KeepAlive: 30 * time.Second, + Timeout: dialTimeout, + KeepAlive: dialKeepAlive, }).DialContext, MaxIdleConns: maxpool, MaxIdleConnsPerHost: maxpool, - IdleConnTimeout: 60 * time.Second, + IdleConnTimeout: idleConnTimeout, Proxy: proxyFun, TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }, - Timeout: 5 * time.Second, + Timeout: timeout, } } From 96d02c8f7103aa9c142b8fe7426bf585aaeb3dd3 Mon Sep 17 00:00:00 2001 From: boyce Date: Tue, 9 Apr 2024 15:33:06 +0800 Subject: [PATCH 2/4] create new version --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index d6aac71..dd1769d 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/duanhf2012/origin +module github.com/duanhf2012/origin/v2 go 1.21 From 4c169cf0bb2dde3944c5012d4e67f98851edb497 Mon Sep 17 00:00:00 2001 From: hjdtpz Date: Mon, 22 Apr 2024 21:47:49 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=AF=BC=E5=87=BARankData.RefreshTimestamp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sysservice/rankservice/MongodbPersist.go | 2 +- sysservice/rankservice/RankData.go | 4 ++-- sysservice/rankservice/RankSkip.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sysservice/rankservice/MongodbPersist.go b/sysservice/rankservice/MongodbPersist.go index 2fc7499..6694fb1 100644 --- a/sysservice/rankservice/MongodbPersist.go +++ b/sysservice/rankservice/MongodbPersist.go @@ -357,7 +357,7 @@ func (mp *MongoPersist) removeRankData(rankId uint64,keys []uint64) bool { func (mp *MongoPersist) upsertToDB(collectName string,rankData *RankData) error{ condition := bson.D{{"_id", rankData.Key}} - upsert := bson.M{"_id":rankData.Key,"RefreshTime": rankData.refreshTimestamp, "SortData": rankData.SortData, "Data": rankData.Data,"ExData":rankData.ExData} + upsert := bson.M{"_id":rankData.Key,"RefreshTime": rankData.RefreshTimestamp, "SortData": rankData.SortData, "Data": rankData.Data,"ExData":rankData.ExData} update := bson.M{"$set": upsert} s := mp.mongo.TakeSession() diff --git a/sysservice/rankservice/RankData.go b/sysservice/rankservice/RankData.go index 00a9e88..af0d260 100644 --- a/sysservice/rankservice/RankData.go +++ b/sysservice/rankservice/RankData.go @@ -19,7 +19,7 @@ type RankData struct { Data []byte ExData []int64 - refreshTimestamp int64 //刷新时间 + RefreshTimestamp int64 //刷新时间 //bRelease bool ref bool compareFunc func(other skip.Comparator) int @@ -39,7 +39,7 @@ func NewRankData(isDec bool, data *rpc.RankData,refreshTimestamp int64) *RankDat ret.ExData = append(ret.ExData,d.InitValue+d.IncreaseValue) } - ret.refreshTimestamp = refreshTimestamp + ret.RefreshTimestamp = refreshTimestamp return ret } diff --git a/sysservice/rankservice/RankSkip.go b/sysservice/rankservice/RankSkip.go index e2a7dc1..e6918d7 100644 --- a/sysservice/rankservice/RankSkip.go +++ b/sysservice/rankservice/RankSkip.go @@ -250,7 +250,7 @@ func (rs *RankSkip) UpsetRank(upsetData *rpc.RankData, refreshTimestamp int64, f //找到的情况对比排名数据是否有变化,无变化进行data更新,有变化则进行删除更新 if compareIsEqual(rankNode.SortData, upsetData.SortData) { rankNode.Data = upsetData.GetData() - rankNode.refreshTimestamp = refreshTimestamp + rankNode.RefreshTimestamp = refreshTimestamp if fromLoad == false { rs.rankModule.OnChangeRankData(rs, rankNode) From 258a6821dabdb2be1ef2877ab700e40ed5f3ef5a Mon Sep 17 00:00:00 2001 From: boyce Date: Fri, 26 Apr 2024 18:13:41 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- log/log.go | 69 ++++++++++++++++++++++++++++++++-------------------- node/node.go | 2 +- 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/log/log.go b/log/log.go index 7158fd2..a99213b 100644 --- a/log/log.go +++ b/log/log.go @@ -22,7 +22,10 @@ var LogSize int64 var LogChannelCap int var LogPath string var LogLevel slog.Level = LevelTrace + + var gLogger, _ = NewTextLogger(LevelDebug, "", "",true,LogChannelCap) +var isSetLogger bool var memPool = bytespool.NewMemAreaPool() // levels @@ -37,6 +40,21 @@ const ( LevelFatal = slog.Level(20) ) +type ILogger interface { + Trace(msg string, args ...any) + Debug(msg string, args ...any) + Info(msg string, args ...any) + Warning(msg string, args ...any) + Error(msg string, args ...any) + Stack(msg string, args ...any) + Dump(msg string, args ...any) + Fatal(msg string, args ...any) + + DoSPrintf(level slog.Level,a []interface{}) + FormatHeader(buf *Buffer,level slog.Level,calldepth int) + Close() +} + type Logger struct { Slogger *slog.Logger @@ -47,7 +65,6 @@ type Logger struct { type IoWriter struct { outFile io.Writer // destination for output - outConsole io.Writer //os.Stdout writeBytes int64 logChannel chan []byte wg sync.WaitGroup @@ -122,8 +139,8 @@ func (iw *IoWriter) Write(p []byte) (n int, err error){ func (iw *IoWriter) writeIo(p []byte) (n int, err error){ n,err = iw.writeFile(p) - if iw.outConsole != nil { - n,err = iw.outConsole.Write(p) + if OpenConsole { + n,err = os.Stdout.Write(p) } return @@ -217,17 +234,12 @@ func (iw *IoWriter) swichFile() error{ iw.fileDay = now.Day() iw.fileCreateTime = now.Unix() atomic.StoreInt64(&iw.writeBytes,0) - if OpenConsole == true { - iw.outConsole = os.Stdout - } - }else{ - iw.outConsole = os.Stdout } return nil } -func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (*Logger,error){ +func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (ILogger,error){ var logger Logger logger.ioWriter.filePath = pathName logger.ioWriter.fileprefix = filePrefix @@ -242,7 +254,7 @@ func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource return &logger,nil } -func NewJsonLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (*Logger,error){ +func NewJsonLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (ILogger,error){ var logger Logger logger.ioWriter.filePath = pathName logger.ioWriter.fileprefix = filePrefix @@ -296,13 +308,18 @@ func (logger *Logger) Fatal(msg string, args ...any) { os.Exit(1) } -// It's dangerous to call the method on logging -func Export(logger *Logger) { - if logger != nil { +// It's non-thread-safe +func SetLogger(logger ILogger) { + if logger != nil && isSetLogger == false { gLogger = logger + isSetLogger = true } } +func GetLogger() ILogger{ + return gLogger +} + func Trace(msg string, args ...any){ gLogger.Trace(msg, args...) } @@ -415,7 +432,7 @@ func Group(key string, args ...any) slog.Attr { return slog.Group(key, args...) } -func (logger *Logger) doSPrintf(level slog.Level,a []interface{}) { +func (logger *Logger) DoSPrintf(level slog.Level,a []interface{}) { if logger.Slogger.Enabled(context.Background(),level) == false{ return } @@ -425,7 +442,7 @@ func (logger *Logger) doSPrintf(level slog.Level,a []interface{}) { logger.sBuff.Reset() - logger.formatHeader(&logger.sBuff,level,3) + logger.FormatHeader(&logger.sBuff,level,3) for _,s := range a { logger.sBuff.AppendString(slog.AnyValue(s).String()) @@ -435,46 +452,46 @@ func (logger *Logger) doSPrintf(level slog.Level,a []interface{}) { } func (logger *Logger) STrace(a ...interface{}) { - logger.doSPrintf(LevelTrace,a) + logger.DoSPrintf(LevelTrace,a) } func (logger *Logger) SDebug(a ...interface{}) { - logger.doSPrintf(LevelDebug,a) + logger.DoSPrintf(LevelDebug,a) } func (logger *Logger) SInfo(a ...interface{}) { - logger.doSPrintf(LevelInfo,a) + logger.DoSPrintf(LevelInfo,a) } func (logger *Logger) SWarning(a ...interface{}) { - logger.doSPrintf(LevelWarning,a) + logger.DoSPrintf(LevelWarning,a) } func (logger *Logger) SError(a ...interface{}) { - logger.doSPrintf(LevelError,a) + logger.DoSPrintf(LevelError,a) } func STrace(a ...interface{}) { - gLogger.doSPrintf(LevelTrace,a) + gLogger.DoSPrintf(LevelTrace,a) } func SDebug(a ...interface{}) { - gLogger.doSPrintf(LevelDebug,a) + gLogger.DoSPrintf(LevelDebug,a) } func SInfo(a ...interface{}) { - gLogger.doSPrintf(LevelInfo,a) + gLogger.DoSPrintf(LevelInfo,a) } func SWarning(a ...interface{}) { - gLogger.doSPrintf(LevelWarning,a) + gLogger.DoSPrintf(LevelWarning,a) } func SError(a ...interface{}) { - gLogger.doSPrintf(LevelError,a) + gLogger.DoSPrintf(LevelError,a) } -func (logger *Logger) formatHeader(buf *Buffer,level slog.Level,calldepth int) { +func (logger *Logger) FormatHeader(buf *Buffer,level slog.Level,calldepth int) { t := time.Now() var file string var line int diff --git a/node/node.go b/node/node.go index d8e577a..e6ba572 100644 --- a/node/node.go +++ b/node/node.go @@ -200,7 +200,7 @@ func initLog() error { fmt.Printf("cannot create log file!\n") return err } - log.Export(logger) + log.SetLogger(logger) return nil }