123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package savedb
- import (
- "app.yhyue.com/moapp/jybase/mongodb"
- "log"
- "sync"
- "time"
- )
- type DbLogs struct {
- Cache []map[string]interface{}
- lock sync.Mutex
- Db mongodb.MongodbSim
- }
- // SaveLogTask 定时保存日志
- func (s *DbLogs) SaveLogTask() {
- s.lock.Lock()
- if len(s.Cache) >= 1 {
- tmp := s.Cache
- s.Cache = make([]map[string]interface{}, 0)
- go func() {
- log.Println("timer..save..visit..log", len(tmp))
- }()
- }
- s.lock.Unlock()
- time.AfterFunc(5*time.Minute, s.SaveLogTask)
- }
- func (s *DbLogs) AddLogToTask(data map[string]interface{}) {
- s.lock.Lock()
- s.Cache = append(s.Cache, data)
- if len(s.Cache) >= 5 {
- tmp := s.Cache
- s.Cache = make([]map[string]interface{}, 0)
- go func() {
- log.Println("save..visit..log", len(tmp), s.Db.SaveBulk("jy_gateway_logs", tmp...))
- }()
- }
- s.lock.Unlock()
- }
|