// 开始执行任务 func (self *Logic) exec() { count := Pholcus.Spiders.Len() cache.ReqSum = 0 // 初始化资源队列 scheduler.Init(cache.Task.ThreadNum) // 设置爬虫队列 crawlNum := Pholcus.Crawls.Reset(count) log.Println(` ********************************************************************************************************************************************** `) log.Printf(" * ") log.Printf(" * 执行任务总数(任务数[*关键词数])为 %v 个...\n", count) log.Printf(" * 爬虫队列可容纳蜘蛛 %v 只...\n", crawlNum) log.Printf(" * 并发协程最多 %v 个……\n", cache.Task.ThreadNum) log.Printf(" * 随机停顿时间为 %v~%v ms ……\n", cache.Task.BaseSleeptime, cache.Task.BaseSleeptime+cache.Task.RandomSleepPeriod) log.Printf(" * ") log.Printf(" * —— 开始抓取,请耐心等候 ——") log.Printf(" * ") log.Println(` ********************************************************************************************************************************************** `) // 开始计时 cache.StartTime = time.Now() // 任务执行 status.Crawl = status.RUN // 根据模式选择合理的并发 if cache.Task.RunMode == status.OFFLINE { go self.goRun(count) } else { // 保证了打印信息的同步输出 self.goRun(count) } }
// 开始执行任务 func (self *Logic) exec() { count := self.Node.Spiders.Len() cache.ReSetPageCount() // 初始化资源队列 scheduler.Init(cache.Task.ThreadNum) // 设置爬虫队列 crawlNum := self.Node.Crawls.Reset(count) log.Println(` *********************************************************************************************************************************** `) log.Printf(" * ") log.Printf(" * 执行任务总数(任务数[*关键词数])为 %v 个...\n", count) log.Printf(" * 爬虫队列可容纳蜘蛛 %v 只...\n", crawlNum) log.Printf(" * 并发协程最多 %v 个……\n", cache.Task.ThreadNum) log.Printf(" * 随机停顿时间为 %v~%v ms ……\n", cache.Task.Pausetime[0], cache.Task.Pausetime[0]+cache.Task.Pausetime[1]) log.Printf(" * ") log.Printf(" * —— 开始抓取,请耐心等候 ——") log.Printf(" * ") log.Println(` *********************************************************************************************************************************** `) // 开始计时 cache.StartTime = time.Now() // 根据模式选择合理的并发 if cache.Task.RunMode == status.OFFLINE { go self.goRun(count) } else { // 不并发是为保证接收服务端任务的同步 self.goRun(count) } }