41 lines
965 B
Go
41 lines
965 B
Go
package main
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"91porn-server/common/elastic"
|
|
"91porn-server/common/log"
|
|
"91porn-server/models"
|
|
"91porn-server/models/v/audiobookmod"
|
|
"91porn-server/skd/skdg"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
)
|
|
|
|
func syncAudioBook(wg *sync.WaitGroup) {
|
|
log.Info("audiobook sync start...")
|
|
for i := int64(0); ; i++ {
|
|
opts := options.Find().SetSkip(i * 1000).SetLimit(1000).SetSort(bson.D{{Key: "_id", Value: 1}})
|
|
au, err := audiobookmod.GetListByCond(bson.M{}, opts)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
var source = elastic.M{}
|
|
for i := range au {
|
|
tmp := au[i]
|
|
source[au[i].ID.Hex()] = tmp
|
|
}
|
|
if err := skdg.VideoES.Bulk(models.ESInfoAudioBookTable, source); err != nil {
|
|
panic(err)
|
|
}
|
|
auLen := len(au)
|
|
if len(au) < 1000 {
|
|
break
|
|
}
|
|
log.Info("audiobook sync:", log.Any("start", i*1000), log.Any("end", i*1000+int64(auLen)))
|
|
}
|
|
log.Info("audiobook sync complete...")
|
|
wg.Done()
|
|
}
|