123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package main
- import (
- mgo "mongodb"
- qu "qfw/util"
- "github.com/cron"
- "github.com/donnie4w/go-logger/logger"
- )
- var (
- Config map[string]interface{}
- //User map[string]string
- MgoE *mgo.MongodbSim //editor
- MgoS *mgo.MongodbSim //spider
- )
- func init() {
- qu.ReadConfig(&Config)
- //qu.ReadConfig("./user.json", &User)
- //mgo
- spider := Config["spider"].(map[string]interface{})
- MgoS = &mgo.MongodbSim{
- MongodbAddr: qu.ObjToString(spider["addr"]),
- DbName: qu.ObjToString(spider["db"]),
- Size: qu.IntAll(spider["size"]),
- }
- MgoS.InitPool()
- editor := Config["editor"].(map[string]interface{})
- MgoE = &mgo.MongodbSim{
- MongodbAddr: qu.ObjToString(editor["addr"]),
- DbName: qu.ObjToString(editor["db"]),
- Size: qu.IntAll(editor["size"]),
- }
- MgoE.InitPool()
- //logs
- logger.SetRollingDaily("./logs", "task.log")
- //爬虫上下浮动率
- DownloadCheck = make(map[string]*DC)
- downloadcheck := Config["downloadcheck"].(map[string]interface{})
- for _, tmp := range downloadcheck {
- tmpMap := tmp.(map[string]interface{})
- downratio := qu.Float64All(tmpMap["downratio"])
- uptatio := qu.Float64All(tmpMap["upratio"])
- codes := tmpMap["spidercode"].([]interface{})
- if len(codes) > 0 {
- for _, code := range codes {
- c := qu.ObjToString(code)
- DownloadCheck[c] = &DC{
- DownRatio: 1.0 - downratio/100.0,
- UpRatio: 1.0 + uptatio/100.0,
- }
- }
- } else {
- DownloadCheck["other"] = &DC{
- DownRatio: 1.0 - downratio/100.0,
- UpRatio: 1.0 + uptatio/100.0,
- }
- }
- }
- EveryDayDownloadTime = qu.ObjToString(Config["everydaydownload"])
- UpdateStateCron = qu.ObjToString(Config["updatestatecron"])
- CreateTaskCron = qu.ObjToString(Config["createtaskcron"])
- CloseTaskCron = qu.ObjToString(Config["closetaskcron"])
- CodeSummaryCron = qu.ObjToString(Config["codesummarycron"])
- CloseNum = qu.IntAll(Config["closenum"])
- DayNum = qu.IntAll(Config["daynum"])
- //
- YearMinDownloadNum = qu.IntAll(Config["yearmindownload"])
- IntervalMaxNum = qu.IntAll(Config["intervalmaxnum"])
- }
- func main() {
- //低采集量爬虫新建任务
- LuaYearMinCodeCreateTask()
- c := cron.New()
- c.Start()
- c.AddFunc(EveryDayDownloadTime, GetDownloadNumber) //统计下载量
- c.AddFunc(UpdateStateCron, ResetDataState) //更新数据状态
- c.AddFunc(CreateTaskCron, CreateTaskProcess) //创建任务
- c.AddFunc(CloseTaskCron, CloseTask) //关闭任务
- c.AddFunc(CodeSummaryCron, SummaryCode) //上架爬虫信息汇总
- //统计爬虫历史下载量制定任务周期
- // GetSpidercode()
- // TagCode()
- // CycleTime()
- ch := make(chan bool, 1)
- <-ch
- }
|