1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package newbiedao
- import (
- "context"
- "time"
- "go-common/app/interface/main/growup/conf"
- "go-common/app/interface/main/growup/model"
- accApi "go-common/app/service/main/account/api"
- "go-common/library/database/sql"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- )
- var (
- // Categories cache categories
- Categories map[int64]*model.Category
- // RecommendUpList cache recommend up list
- RecommendUpList map[int64]map[int64]*model.RecommendUp
- )
- // Dao def dao struct
- type Dao struct {
- c *conf.Config
- db *sql.DB
- // search
- httpRead *bm.Client
- // grpc
- accGRPC accApi.AccountClient
- }
- // New fn
- func New(c *conf.Config) (d *Dao) {
- d = &Dao{
- c: c,
- db: sql.NewMySQL(c.DB.Growup),
- // search
- httpRead: bm.NewClient(c.HTTPClient.Read),
- }
- var err error
- if d.accGRPC, err = accApi.NewClient(c.AccCliConf); err != nil {
- panic(err)
- }
- d.loadCache()
- go func() {
- t := time.Tick(10 * time.Minute)
- for {
- d.loadCache()
- <-t
- }
- }()
- return d
- }
- // Ping ping db
- func (d *Dao) Ping(c context.Context) (err error) {
- if err = d.db.Ping(c); err != nil {
- log.Error("d.db.Ping error(%v)", err)
- return
- }
- return
- }
- // Close close db conn
- func (d *Dao) Close() {
- if d.db != nil {
- d.db.Close()
- }
- }
- // loodCache load cache
- func (d *Dao) loadCache() {
- _ = d.GetCategories(context.Background())
- log.Info("refresh categories cache: %+v", Categories)
- _ = d.GetRecommendUpList(context.Background())
- log.Info("refresh recommend up list cache: %+v", RecommendUpList)
- }
|