@@ -0,0 +1,56 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user