tip.go 650 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package serverdata
  2. import (
  3. "sync"
  4. "time"
  5. "bet24.com/servers/adminserver/dao"
  6. )
  7. type tip struct {
  8. tips []dao.TipInfo
  9. lock *sync.RWMutex
  10. }
  11. func NewTip() *tip {
  12. obj := new(tip)
  13. obj.lock = &sync.RWMutex{}
  14. return obj
  15. }
  16. func (this *tip) GetList() []dao.TipInfo {
  17. this.lock.RLock()
  18. defer this.lock.RUnlock()
  19. return this.tips
  20. }
  21. func (this *tip) run() {
  22. ticker := time.NewTicker(10 * time.Second)
  23. go func(t *time.Ticker) {
  24. for {
  25. select {
  26. case <-t.C:
  27. this.search()
  28. }
  29. }
  30. }(ticker)
  31. }
  32. func (this *tip) search() {
  33. obj := dao.NewTip()
  34. obj.DoAction(nil)
  35. this.lock.Lock()
  36. defer this.lock.Unlock()
  37. this.tips = obj.Out.List
  38. }