105 lines
2.1 KiB
Go
105 lines
2.1 KiB
Go
package job
|
|
|
|
import (
|
|
"sync"
|
|
"time"
|
|
|
|
"91porn-server/common"
|
|
"91porn-server/common/log"
|
|
"91porn-server/skd/job/cache/tonecache"
|
|
"91porn-server/skd/job/stat/keyword"
|
|
"91porn-server/skd/job/stat/kwrank"
|
|
"91porn-server/skd/job/stat/rank"
|
|
"91porn-server/skd/job/stat/rechorder"
|
|
"91porn-server/skd/job/stat/statuser"
|
|
"91porn-server/skd/job/stat/tagplay"
|
|
"91porn-server/skd/job/stat/video"
|
|
"91porn-server/skd/job/stat/vidtotal"
|
|
"91porn-server/skd/job/stat/withorder"
|
|
"91porn-server/skd/skdg"
|
|
)
|
|
|
|
var (
|
|
statIsRunning = false //true:统计任务运行中,反之停止,
|
|
statRankIsRunning = false
|
|
)
|
|
|
|
// 运行统计任务
|
|
func runStat() {
|
|
//防止重入
|
|
if statIsRunning {
|
|
return
|
|
}
|
|
statIsRunning = true
|
|
defer func() {
|
|
statIsRunning = false
|
|
}()
|
|
doStat() //做统计业务
|
|
}
|
|
|
|
// 做统计业务
|
|
func doStat() {
|
|
defaultStatDate, err := getDefaultStatDate()
|
|
if err != nil {
|
|
log.Error("defaultStatDate invalid", log.E(err))
|
|
return
|
|
}
|
|
methodM := []func(){
|
|
//主要用于app
|
|
func() { //"关键字"
|
|
keyword.RunStat(defaultStatDate)
|
|
kwrank.RunStat(defaultStatDate) //有执行顺序
|
|
},
|
|
func() { //"标签播放"
|
|
tagplay.RunStat(defaultStatDate)
|
|
},
|
|
func() { //"用户数据"
|
|
statuser.RunStat(defaultStatDate)
|
|
},
|
|
// func() { //"ranks"
|
|
//rankcache.Update()
|
|
// },
|
|
func() { //"tone"
|
|
tonecache.Update()
|
|
},
|
|
func() { //"视屏"
|
|
video.RunStat(defaultStatDate)
|
|
vidtotal.RunStat(defaultStatDate) //有执行顺序
|
|
},
|
|
func() { //"充值订单"
|
|
rechorder.RunStat(defaultStatDate)
|
|
},
|
|
func() { //"兑换订单"
|
|
withorder.RunStat(defaultStatDate)
|
|
},
|
|
}
|
|
time.Sleep(time.Duration(30) * time.Second)
|
|
wg := sync.WaitGroup{}
|
|
wg.Add(len(methodM))
|
|
for _, method := range methodM {
|
|
_method := method
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
_method()
|
|
})
|
|
}
|
|
wg.Wait()
|
|
}
|
|
|
|
func getDefaultStatDate() (time.Time, error) {
|
|
return time.ParseInLocation("2006-01-02", skdg.Conf.StartDate, time.Local)
|
|
}
|
|
|
|
// 运行排行榜
|
|
func runRankStat() {
|
|
//防止重入
|
|
if statRankIsRunning {
|
|
return
|
|
}
|
|
statRankIsRunning = true
|
|
defer func() {
|
|
statRankIsRunning = false
|
|
}()
|
|
rank.RunStat()
|
|
}
|