// 开始执行任务 func (self *Logic) exec() { count := Pholcus.Spiders.Len() cache.ReSetPageCount() // 初始化资源队列 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() // 根据模式选择合理的并发 if cache.Task.RunMode == status.OFFLINE { go self.goRun(count) } else { // 不并发是为保证接收服务端任务的同步 self.goRun(count) } }
// 开始执行任务 func (self *Logic) exec() { count := self.SpiderQueue.Len() cache.ReSetPageCount() // 初始化资源队列 self.Scheduler.Init(self.AppConf.ThreadNum, self.AppConf.InheritDeduplication, self.AppConf.DeduplicationTarget) // 设置爬虫队列 crawlCap := self.CrawlPool.Reset(count) logs.Log.Informational(` *********************************************************************************************************************************** `) logs.Log.Informational(" * ") logs.Log.Informational(" * 执行任务总数(任务数[*关键词数])为 %v 个 ...\n", count) logs.Log.Informational(" * 爬虫池容量为 %v ...\n", crawlCap) logs.Log.Informational(" * 并发协程最多 %v 个 ...\n", self.AppConf.ThreadNum) logs.Log.Informational(" * 随机停顿时间为 %v~%v ms ...\n", self.AppConf.Pausetime[0], self.AppConf.Pausetime[0]+self.AppConf.Pausetime[1]) logs.Log.Informational(" * ") logs.Log.Notice(" * —— 开始抓取,请耐心等候 ——") logs.Log.Informational(" * ") logs.Log.Informational(` *********************************************************************************************************************************** `) // 开始计时 cache.StartTime = time.Now() // 根据模式选择合理的并发 if self.AppConf.Mode == 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) // 设置爬虫队列 crawlCap := self.Node.Crawls.Reset(count) log.Println(` *********************************************************************************************************************************** `) log.Printf(" * ") log.Printf(" * 执行任务总数(任务数[*关键词数])为 %v 个 ...\n", count) log.Printf(" * 爬虫池容量为 %v ...\n", crawlCap) 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) } }