package audiobookspider import ( "fmt" "time" "91porn-server/common/log" "91porn-server/common/timeutil/timerange" "91porn-server/models/s/statrecordmod" ) func RunSync(defaultDate time.Time) { log.Info("Audiobook sync audiobookSpider data start...") defer log.Info("Audiobook sync audiobookSpider data end.") // 获取上次数据同步的记录时间 lastSyncAt, err := statrecordmod.LastRecordTime(statrecordmod.SpiderSyncAudiobookJob, defaultDate) if err != nil { log.Error("Audiobook sync audiobookSpider data RunSync get last record time failed", log.E(err)) return } var now = time.Now().Add(-time.Minute * 10) var recentMinute = timerange.RecentMinute(now, statrecordmod.FiveMinuteScale) for recentMinute.After(lastSyncAt) { var end = lastSyncAt.Add(statrecordmod.FiveMinuteScale * time.Minute) if end.After(recentMinute) { end = recentMinute } var subTimeRange = timerange.TimeRange{ Head: lastSyncAt, Tail: end, } data, err := GetListByUpdateTimeRange_net(subTimeRange.Head, subTimeRange.Tail) if err != nil { return } if err = commit(data, subTimeRange.Tail); err != nil { log.Error("Audiobook sync audiobookSpider commit err! ", log.E(err)) return } if len(data) > 0 { lastSyncAt = data[len(data)-1].UpdatedAt } else { lastSyncAt = end } } } func commit(data []AudioBook, syncTime time.Time) error { if err := SyncDataFromSpider(data); err != nil { return fmt.Errorf("Audiobook sync audiobookSpider commit audiobook data SyncDataFromSpider failed!, err:%+v\n", err) } if err := statrecordmod.UpsertOneTrans(nil, statrecordmod.SpiderSyncAudiobookJob, syncTime); err != nil { return fmt.Errorf("Audiobook sync audiobookSpider commit audiobook data UpsertOneTrans failed!, err:%+v\n", err) } return nil }