package memory import ( "github.com/allegro/bigcache" "github.com/shopspring/decimal" "matchmaking-system/internal/pkg/utils" ) var ( ForexCache *bigcache.BigCache // 外汇买一卖一报价缓存 ForexPriceSetUp *bigcache.BigCache // 外汇插针价格缓存 ForexFloating *bigcache.BigCache // 外汇统计总浮动盈亏 ForexImmediateCache *bigcache.BigCache // 外汇即时报价缓存 ) // init // // @Description: 初始化内存缓存 func init() { ForexCache = NewBigCache() ForexPriceSetUp = NewBigCache() ForexFloating = NewBigCache() ForexImmediateCache = NewBigCache() } // GetForexCache // // @Description: 外汇行情 // @param key // @return []byte // @return error func GetForexCache(key string) ([]byte, error) { conP, err := ForexPriceSetUp.Get(key) if err != nil || string(conP) == decimal.Zero.String() || len(utils.StrReplace(string(conP))) == 0 { conN, errs := ForexCache.Get(key) if errs != nil { return []byte{}, errs } return conN, nil } return conP, err } // GetForexImmediateCache // // @Description: 外汇即时报价 // @param key // @return []byte // @return error func GetForexImmediateCache(key string) ([]byte, error) { conP, err := ForexPriceSetUp.Get(key) if err != nil || string(conP) == decimal.Zero.String() || len(utils.StrReplace(string(conP))) == 0 { conN, errs := ForexImmediateCache.Get(key) if errs != nil { return []byte{}, errs } return conN, nil } return conP, err }