Commit 620d3937 by hcy

并发问题

parent 0e1a7e0a
...@@ -2,23 +2,23 @@ ...@@ -2,23 +2,23 @@
[default_redis_read] [default_redis_read]
host = redis.liexindev.me:6379 host = redis.liexindev.me:6379
password = icDb29mLy2s password = icDb29mLy2s
max_idle = 5000 max_idle = 300
max_active = 5000 max_active = 1000
idle_timeout = 20 idle_timeout = 20
[default_redis_write] [default_redis_write]
host = redis.liexindev.me:6379 host = redis.liexindev.me:6379
password = icDb29mLy2s password = icDb29mLy2s
max_idle = 5000 max_idle = 300
max_active = 5000 max_active = 1000
idle_timeout = 20 idle_timeout = 20
;新spu redis ;新spu redis
[default_redis_spu] [default_redis_spu]
host = 192.168.1.234:6379 host = 192.168.1.234:6379
password = icDb29mLy1s password = icDb29mLy1s
max_idle = 2000 max_idle = 300
max_active = 5000 max_active = 1000
idle_timeout = 20 idle_timeout = 20
......
...@@ -2,10 +2,9 @@ package gredis ...@@ -2,10 +2,9 @@ package gredis
import ( import (
"fmt" "fmt"
"github.com/gomodule/redigo/redis"
"go_sku_server/pkg/config" "go_sku_server/pkg/config"
"time" "time"
"github.com/gomodule/redigo/redis"
) )
type ichuntRedis struct { type ichuntRedis struct {
...@@ -88,6 +87,8 @@ func Hmget(redisCon string, hkey string, targetIds []string) map[string]string { ...@@ -88,6 +87,8 @@ func Hmget(redisCon string, hkey string, targetIds []string) map[string]string {
redisConn := Conn(redisCon) redisConn := Conn(redisCon)
defer redisConn.Close() defer redisConn.Close()
GetPoolStats("default_r")
skuArr := make(map[string]string, 0) skuArr := make(map[string]string, 0)
if len(targetIds) == 1 { if len(targetIds) == 1 {
goods_id := targetIds[0] goods_id := targetIds[0]
......
...@@ -33,7 +33,7 @@ func (as *ActivityService) GetActivityData(checkData model.ActivityCheckData) (p ...@@ -33,7 +33,7 @@ func (as *ActivityService) GetActivityData(checkData model.ActivityCheckData) (p
} }
//处理单品促销活动(打折活动) //处理单品促销活动(打折活动)
activityStr, _ := redis.String(redisCon.Do("hget", "lie_price_activity", redisKey)) activityStr := AllPriceActivity[redisKey]
if activityStr != "" { if activityStr != "" {
var activities []model.Activity var activities []model.Activity
err := json.Unmarshal([]byte(activityStr), &activities) err := json.Unmarshal([]byte(activityStr), &activities)
......
...@@ -84,7 +84,8 @@ func (ls *LyService) LyGoodsDetail(ctx context.Context, params RequestParams, sk ...@@ -84,7 +84,8 @@ func (ls *LyService) LyGoodsDetail(ctx context.Context, params RequestParams, sk
//获取品牌名称 //获取品牌名称
brandId := gjson.Get(spu, "brand_id").Int() brandId := gjson.Get(spu, "brand_id").Int()
brandName, _ := AllLyBrand[gconv.String(brandId)] brandIdStr := gconv.String(brandId)
brandName, _ := AllLyBrand[brandIdStr]
sku.BrandName = brandName sku.BrandName = brandName
sku.BrandId = brandId sku.BrandId = brandId
...@@ -136,10 +137,10 @@ func (ls *LyService) LyGoodsDetail(ctx context.Context, params RequestParams, sk ...@@ -136,10 +137,10 @@ func (ls *LyService) LyGoodsDetail(ctx context.Context, params RequestParams, sk
//获取供应链标准品牌 //获取供应链标准品牌
//什么是供应链的标准品牌 供应链那边报关的时候要求他们的标准品牌,所以要吧自己的品牌映射上去 //什么是供应链的标准品牌 供应链那边报关的时候要求他们的标准品牌,所以要吧自己的品牌映射上去
//继来那边对接的标准品牌(下单的时候) //继来那边对接的标准品牌(下单的时候)
sku.ScmBrand = ls.GetScmBrand(brandId) sku.ScmBrand = AllScmBrands[brandIdStr]
//获取新版的标准品牌 //获取新版的标准品牌
sku.StandardBrand = AllStandardBrands[gconv.String(brandId)] sku.StandardBrand = AllStandardBrands[brandIdStr]
//处理过期, 2022.7.13 专卖没有过期 //处理过期, 2022.7.13 专卖没有过期
if sku.SupplierId != 17 && gjson.Get(skuStr, "is_expire").Int() != 0 { if sku.SupplierId != 17 && gjson.Get(skuStr, "is_expire").Int() != 0 {
......
...@@ -28,6 +28,7 @@ var ( ...@@ -28,6 +28,7 @@ var (
AllErpTax map[string]interface{} //获取税务信息,对接税务系统 AllErpTax map[string]interface{} //获取税务信息,对接税务系统
AllSupplierName map[string]string //供应商名称 AllSupplierName map[string]string //供应商名称
AllScmBrands map[string]map[string]interface{} //所有scm品牌,普通品牌=>scm品牌 AllScmBrands map[string]map[string]interface{} //所有scm品牌,普通品牌=>scm品牌
AllPriceActivity map[string]string //所有的活动促销信息
) )
// 币种中文 // 币种中文
...@@ -101,6 +102,7 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy ...@@ -101,6 +102,7 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy
brandIds := make([]string, 0) //所有品牌id brandIds := make([]string, 0) //所有品牌id
ClassIds := make([]string, 0) //所有分类id ClassIds := make([]string, 0) //所有分类id
erpMd5Key := make([]string, 0) //查询税率 erpMd5Key := make([]string, 0) //查询税率
priceActivityKey := make([]string, 0) //查询活动key
//预查询 //预查询
for _, info := range redisLySkuArr { for _, info := range redisLySkuArr {
spuId := gjson.Get(info, "spu_id").String() spuId := gjson.Get(info, "spu_id").String()
...@@ -116,9 +118,21 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy ...@@ -116,9 +118,21 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy
source := gjson.Get(info, "source").Int() source := gjson.Get(info, "source").Int()
canal := gjson.Get(info, "canal").String() canal := gjson.Get(info, "canal").String()
spuId := gjson.Get(info, "spu_id").String() spuId := gjson.Get(info, "spu_id").String()
orgId := gjson.Get(info, "org_id").String()
spuInfo := redisLySpuArr[spuId] spuInfo := redisLySpuArr[spuId]
brandId := gjson.Get(spuInfo, "brand_id").String() brandId := gjson.Get(spuInfo, "brand_id").String()
//活动key
var priceRedisKey string
//区分猎芯和华云
if orgId == "1" {
priceRedisKey = supplierIdStr
} else {
priceRedisKey = supplierIdStr + "_" + orgId
}
priceActivityKey = append(priceActivityKey, priceRedisKey)
//分类id //分类id
spuClassId1 := gjson.Get(spuInfo, "class_id1").String() spuClassId1 := gjson.Get(spuInfo, "class_id1").String()
spuClassId2 := gjson.Get(spuInfo, "class_id2").String() spuClassId2 := gjson.Get(spuInfo, "class_id2").String()
...@@ -171,6 +185,12 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy ...@@ -171,6 +185,12 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy
wg.Add(1) wg.Add(1)
go func() { go func() {
defer wg.Done() defer wg.Done()
BatchGetPriceActivity(priceActivityKey) //获取活动信息,目前是包括促销活动(系数打折)以及满赠活动
}()
wg.Add(1)
go func() {
defer wg.Done()
BatchScmBrand(brandIds) //批量H获取供应链标准品牌 BatchScmBrand(brandIds) //批量H获取供应链标准品牌
}() }()
...@@ -232,6 +252,11 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy ...@@ -232,6 +252,11 @@ func (ss *SpuService) SetInit(redisLySkuArr, redisLySpuArr map[string]string, zy
} }
// 获取活动信息,目前是包括促销活动(系数打折)以及满赠活动
func BatchGetPriceActivity(redisKey []string) {
AllPriceActivity = gredis.Hmget("default_r", "lie_price_activity", removeDuplicateString(redisKey)) //批量查询品牌
}
// 批量H获取供应链标准品牌 // 批量H获取供应链标准品牌
func BatchScmBrand(brandIds []string) { func BatchScmBrand(brandIds []string) {
brandIds = removeDuplicateString(brandIds) brandIds = removeDuplicateString(brandIds)
...@@ -309,6 +334,7 @@ func BatchLyBrand(brandIds []string) { ...@@ -309,6 +334,7 @@ func BatchLyBrand(brandIds []string) {
standardBrandStr := standardBrandArr[standardBrandId] standardBrandStr := standardBrandArr[standardBrandId]
var standardBrand model.StandardBrand var standardBrand model.StandardBrand
if standardBrandStr != "" { if standardBrandStr != "" {
println("standardBrandId:" + standardBrandStr)
standardBrand.BrandName = gjson.Get(standardBrandStr, "brand_name").String() standardBrand.BrandName = gjson.Get(standardBrandStr, "brand_name").String()
standardBrand.StandardBrandId = int(gjson.Get(standardBrandStr, "standard_brand_id").Int()) standardBrand.StandardBrandId = int(gjson.Get(standardBrandStr, "standard_brand_id").Int())
standardBrand.BrandLogo = gjson.Get(standardBrandStr, "brandLogo").String() standardBrand.BrandLogo = gjson.Get(standardBrandStr, "brandLogo").String()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment