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