1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package wall
- import (
- "context"
- "time"
- "go-common/app/interface/main/app-wall/conf"
- walldao "go-common/app/interface/main/app-wall/dao/wall"
- "go-common/app/interface/main/app-wall/model/wall"
- log "go-common/library/log"
- httpx "go-common/library/net/http/blademaster"
- )
- type Service struct {
- c *conf.Config
- client *httpx.Client
- dao *walldao.Dao
- tick time.Duration
- cache []*wall.Wall
- testCache []*wall.Wall
- }
- func New(c *conf.Config) (s *Service) {
- s = &Service{
- c: c,
- client: httpx.NewClient(c.HTTPClient),
- dao: walldao.New(c),
- tick: time.Duration(c.Tick),
- }
- s.load()
- go s.loadproc()
- return
- }
- // GetWall All
- func (s *Service) Wall() (res []*wall.Wall) {
- res = s.cache
- return
- }
- // load WallAll
- func (s *Service) load() {
- res, err := s.dao.WallAll(context.TODO())
- if err != nil {
- log.Error("s.dao.wallAll error(%v)", err)
- return
- }
- s.cache = res
- s.testCache = res
- log.Info("loadWallsCache success")
- }
- // cacheproc load cache
- func (s *Service) loadproc() {
- for {
- time.Sleep(s.tick)
- s.load()
- }
- }
|