From 345f7c6da491f2bc96e4fc11efeef36a7652209c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AD=90=E9=93=AD?= Date: Thu, 20 Mar 2025 18:04:54 +0800 Subject: [PATCH] add cacke --- internal/data/gorm.go | 7 +++---- internal/data/repoimpl/order.go | 6 +++++- internal/data/repoimpl/product.go | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/data/gorm.go b/internal/data/gorm.go index de1b47a..25e7a0e 100644 --- a/internal/data/gorm.go +++ b/internal/data/gorm.go @@ -47,23 +47,22 @@ func db(data *conf.Data_Database) (*gorm.DB, func()) { panic("failed to gormDB " + err.Error()) } - // SetMaxIdleConns sets the maximum number of connections in the idle connection pool. //sqlDB.SetMaxIdleConns(int(data.MaxIdle)) sqlDB.SetMaxIdleConns(1000) - // SetMaxOpenConns sets the maximum number of openapi connections to the database. //sqlDB.SetMaxOpenConns(int(data.MaxOpen)) sqlDB.SetMaxOpenConns(3000) - // SetConnMaxLifetime sets the maximum amount of time a connection may be reused. //sqlDB.SetConnMaxLifetime(1 * time.Hour) - sqlDB.SetConnMaxLifetime(7200 * time.Second) + sqlDB.SetConnMaxLifetime(1 * time.Hour) sqlDB.SetConnMaxIdleTime(15 * time.Minute) return gormDB, func() { + if mysqlConn != nil { fmt.Println("关闭 db") if err := mysqlConn.Close(); err != nil { fmt.Printf("关闭 db 失败:%v", err) } } + } } diff --git a/internal/data/repoimpl/order.go b/internal/data/repoimpl/order.go index 318d214..c0ab343 100644 --- a/internal/data/repoimpl/order.go +++ b/internal/data/repoimpl/order.go @@ -83,6 +83,10 @@ func (p *OrderRepoImpl) Create(ctx context.Context, req *bo.OrderBo) (*bo.OrderB } func (p *OrderRepoImpl) GetByOutBizNo(ctx context.Context, t vo.OrderType, outBizNo string) (*bo.OrderBo, error) { + + ctx, cancel := context.WithTimeout(ctx, 20*time.Second) // 设置查询超时 + defer cancel() + info := &model.Order{} db := p.DB(ctx) @@ -90,7 +94,7 @@ func (p *OrderRepoImpl) GetByOutBizNo(ctx context.Context, t vo.OrderType, outBi if tx.Error != nil { sqlDB, _ := db.DB() - log.Warnf("order当前打开连接数: %d,空闲连接数: %d", sqlDB.Stats().OpenConnections, sqlDB.Stats().Idle) + log.Warnf("order当前打开连接数:%d,空闲连接数:%d", sqlDB.Stats().OpenConnections, sqlDB.Stats().Idle) return nil, fmt.Errorf("order db fail %w", tx.Error) } diff --git a/internal/data/repoimpl/product.go b/internal/data/repoimpl/product.go index 871bab7..a546f03 100644 --- a/internal/data/repoimpl/product.go +++ b/internal/data/repoimpl/product.go @@ -89,7 +89,7 @@ func (r *ProductRepoImpl) getByPNO(ctx context.Context, item *model.Product, PNO if tx.Error != nil { sqlDB, _ := db.DB() - log.Warnf("product当前打开连接数: %d,空闲连接数: %d", sqlDB.Stats().OpenConnections, sqlDB.Stats().Idle) + log.Warnf("product当前打开连接数:%d,空闲连接数:%d", sqlDB.Stats().OpenConnections, sqlDB.Stats().Idle) return nil, fmt.Errorf("product db fail %w", tx.Error) }