123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package dao
- import (
- "context"
- "time"
- "go-common/app/service/main/dynamic/conf"
- "go-common/library/cache/memcache"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/stat/prom"
- )
- const (
- _regionURL = "/dynamic/region"
- _regionTagURL = "/dynamic/tag"
- _liveURL = "/room/v1/Area/dynamic"
- _hotURL = "/x/internal/tag/hotmap"
- _pridURL = "/x/internal/tag/prids"
- )
- // PromError stat and log.
- func PromError(name string, format string, args ...interface{}) {
- prom.BusinessErrCount.Incr(name)
- log.Error(format, args...)
- }
- // Dao dao.
- type Dao struct {
- // http
- httpR *bm.Client
- // bigData api
- regionURI string
- regionTagURI string
- // live api
- liveURI string
- // tag api
- hotURI string
- pridURI string
- // memcache
- mc *memcache.Pool
- mcExpire int32
- // cache Prom
- cacheProm *prom.Prom
- }
- // New dao new.
- func New(c *conf.Config) (d *Dao) {
- d = &Dao{
- httpR: bm.NewClient(c.HTTPClient.Read),
- regionURI: c.Host.BigDataURI + _regionURL,
- regionTagURI: c.Host.BigDataURI + _regionTagURL,
- liveURI: c.Host.LiveURI + _liveURL,
- hotURI: c.Host.APIURI + _hotURL,
- pridURI: c.Host.APIURI + _pridURL,
- // memcache
- mc: memcache.NewPool(c.Memcache.Config),
- mcExpire: int32(time.Duration(c.Memcache.Expire) / time.Second),
- }
- d.cacheProm = prom.CacheHit
- return
- }
- // Ping check connection success.
- func (dao *Dao) Ping(c context.Context) (err error) {
- err = dao.pingMC(c)
- return
- }
- // Close close memcache resource.
- func (dao *Dao) Close() {
- if dao.mc != nil {
- dao.mc.Close()
- }
- }
|