當前位置: 首頁>>代碼示例>>Golang>>正文


Golang cache.GetPageCount函數代碼示例

本文整理匯總了Golang中github.com/henrylee2cn/pholcus/runtime/cache.GetPageCount函數的典型用法代碼示例。如果您正苦於以下問題:Golang GetPageCount函數的具體用法?Golang GetPageCount怎麽用?Golang GetPageCount使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了GetPageCount函數的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: Stop

// Offline 模式下中途終止任務
func (self *Logic) Stop() {
	status.Crawl = status.STOP
	Pholcus.Crawls.Stop()
	scheduler.Sdl.Stop()
	reporter.Log.Stop()

	// 總耗時
	takeTime := time.Since(cache.StartTime).Minutes()

	// 打印總結報告
	log.Println(` *********************************************************************************************************************************** `)
	log.Printf(" * ")
	log.Printf(" *                               !!任務取消:下載頁麵 %v 個,耗時:%.5f 分鍾!!", cache.GetPageCount(0), takeTime)
	log.Printf(" * ")
	log.Println(` *********************************************************************************************************************************** `)

	// 標記結束
	self.finish <- true
}
開發者ID:kaca,項目名稱:pholcus,代碼行數:20,代碼來源:app.go

示例2: Stop

// Offline 模式下中途終止任務
func (self *Logic) Stop() {
	self.status = status.STOP
	self.CrawlPool.Stop()
	self.Scheduler.Stop()

	// 總耗時
	takeTime := time.Since(cache.StartTime).Minutes()

	// 打印總結報告
	logs.Log.Informational(` *********************************************************************************************************************************** `)
	logs.Log.Informational(" * ")
	logs.Log.Notice(" *                               !!任務取消:下載頁麵 %v 個,耗時:%.5f 分鍾!!", cache.GetPageCount(0), takeTime)
	logs.Log.Informational(" * ")
	logs.Log.Informational(` *********************************************************************************************************************************** `)

	self.LogRest()

	// 標記結束
	self.finishOnce.Do(func() { close(self.finish) })
}
開發者ID:smypai,項目名稱:pholcus,代碼行數:21,代碼來源:app.go

示例3: Stop

// Offline 模式下中途終止任務
func (self *Logic) Stop() {
	self.status = status.STOP
	self.Node.Crawls.Stop()
	scheduler.Sdl.Stop()

	// 總耗時
	takeTime := time.Since(cache.StartTime).Minutes()

	// 打印總結報告
	log.Println(` *********************************************************************************************************************************** `)
	log.Printf(" * ")
	log.Printf(" *                               !!任務取消:下載頁麵 %v 個,耗時:%.5f 分鍾!!", cache.GetPageCount(0), takeTime)
	log.Printf(" * ")
	log.Println(` *********************************************************************************************************************************** `)

	reporter.Log.Stop()

	// 標記結束
	self.finishOnce.Do(func() { close(self.finish) })
}
開發者ID:npk,項目名稱:pholcus-1,代碼行數:21,代碼來源:app.go

示例4: goRun

// 任務執行
func (self *Logic) goRun(count int) {
	// 執行任務
	var i int
	for i = 0; i < count && self.Status() != status.STOP; i++ {
	pause:
		if self.IsPause() {
			time.Sleep(1e9)
			goto pause
		}
		// 從爬行隊列取出空閑蜘蛛,並發執行
		c := self.CrawlPool.Use()
		if c != nil {
			go func(i int, c crawl.Crawler) {
				// 執行並返回結果消息
				c.Init(self.SpiderQueue.GetByIndex(i)).Start()
				// 任務結束後回收該蜘蛛
				self.CrawlPool.Free(c)
			}(i, c)
		}
	}
	// 監控結束任務
	for ii := 0; ii < i; ii++ {
		s := <-cache.ReportChan
		if (s.DataNum == 0) && (s.FileNum == 0) {
			continue
		}
		logs.Log.Informational(" * ")
		switch {
		case s.DataNum > 0 && s.FileNum == 0:
			logs.Log.App(" *     [任務小計:%s | KEYIN:%s]   共采集數據 %v 條,用時 %v!\n",
				s.SpiderName, s.Keyin, s.DataNum, s.Time)
		case s.DataNum == 0 && s.FileNum > 0:
			logs.Log.App(" *     [任務小計:%s | KEYIN:%s]   共下載文件 %v 個,用時 %v!\n",
				s.SpiderName, s.Keyin, s.FileNum, s.Time)
		default:
			logs.Log.App(" *     [任務小計:%s | KEYIN:%s]   共采集數據 %v 條 + 下載文件 %v 個,用時 %v!\n",
				s.SpiderName, s.Keyin, s.DataNum, s.FileNum, s.Time)
		}

		self.sum[0] += s.DataNum
		self.sum[1] += s.FileNum
	}

	// 總耗時
	self.takeTime = time.Since(cache.StartTime)
	var prefix = func() string {
		if self.Status() == status.STOP {
			return "任務中途取消:"
		}
		return "本次"
	}()
	// 打印總結報告
	logs.Log.Informational(" * ")
	logs.Log.Informational(` *********************************************************************************************************************************** `)
	logs.Log.Informational(" * ")
	switch {
	case self.sum[0] > 0 && self.sum[1] == 0:
		logs.Log.App(" *                            —— %s合計采集【數據 %v 條】, 實爬URL【成功 %v 頁 + 失敗 %v 頁 = 合計 %v 頁】,耗時【%v】 ——",
			prefix, self.sum[0], cache.GetPageCount(1), cache.GetPageCount(-1), cache.GetPageCount(0), self.takeTime)
	case self.sum[0] == 0 && self.sum[1] > 0:
		logs.Log.App(" *                            —— %s合計采集【文件 %v 個】, 實爬URL【成功 %v 頁 + 失敗 %v 頁 = 合計 %v 頁】,耗時【%v】 ——",
			prefix, self.sum[1], cache.GetPageCount(1), cache.GetPageCount(-1), cache.GetPageCount(0), self.takeTime)
	case self.sum[0] == 0 && self.sum[1] == 0:
		logs.Log.App(" *                            —— %s無采集結果,實爬URL【成功 %v 頁 + 失敗 %v 頁 = 合計 %v 頁】,耗時【%v】 ——",
			prefix, cache.GetPageCount(1), cache.GetPageCount(-1), cache.GetPageCount(0), self.takeTime)
	default:
		logs.Log.App(" *                            —— %s合計采集【數據 %v 條 + 文件 %v 個】,實爬URL【成功 %v 頁 + 失敗 %v 頁 = 合計 %v 頁】,耗時【%v】 ——",
			prefix, self.sum[0], self.sum[1], cache.GetPageCount(1), cache.GetPageCount(-1), cache.GetPageCount(0), self.takeTime)
	}
	logs.Log.Informational(" * ")
	logs.Log.Informational(` *********************************************************************************************************************************** `)

	// 單機模式並發運行,需要標記任務結束
	if self.AppConf.Mode == status.OFFLINE {
		self.LogRest()
		self.finishOnce.Do(func() { close(self.finish) })
	}
}
開發者ID:ReinhardHsu,項目名稱:pholcus,代碼行數:79,代碼來源:app.go

示例5: goRun

// 任務執行
func (self *Logic) goRun(count int) {
	for i := 0; i < count && self.status != status.STOP; i++ {
		if self.status == status.PAUSE {
			time.Sleep(1e9)
			continue
		}
		// 從爬行隊列取出空閑蜘蛛,並發執行
		c := self.CrawlPool.Use()
		if c != nil {
			go func(i int, c crawl.Crawler) {
				// 執行並返回結果消息
				c.Init(self.SpiderQueue.GetByIndex(i)).Start()
				// 任務結束後回收該蜘蛛
				self.CrawlPool.Free(c)
			}(i, c)
		}
	}

	// 監控結束任務
	sum := [2]uint{} //數據總數
	for i := 0; i < count; i++ {
		s := <-cache.ReportChan
		if (s.DataNum == 0) && (s.FileNum == 0) {
			continue
		}
		logs.Log.Informational(" * ")
		switch {
		case s.DataNum > 0 && s.FileNum == 0:
			logs.Log.Notice(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.DataNum, s.Time)
		case s.DataNum == 0 && s.FileNum > 0:
			logs.Log.Notice(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共下載文件 %v 個,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.FileNum, s.Time)
		default:
			logs.Log.Notice(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條 + 下載文件 %v 個,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.DataNum, s.FileNum, s.Time)
		}
		logs.Log.Informational(" * ")

		sum[0] += s.DataNum
		sum[1] += s.FileNum
	}

	// 總耗時
	takeTime := time.Since(cache.StartTime).Minutes()

	// 打印總結報告
	logs.Log.Informational(` *********************************************************************************************************************************** `)
	logs.Log.Informational(" * ")
	switch {
	case sum[0] > 0 && sum[1] == 0:
		logs.Log.Notice(" *                            —— 本次合計抓取 %v 條數據,下載頁麵 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum[0], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	case sum[0] == 0 && sum[1] > 0:
		logs.Log.Notice(" *                            —— 本次合計抓取 %v 個文件,下載頁麵 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum[1], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	default:
		logs.Log.Notice(" *                            —— 本次合計抓取 %v 條數據 + %v 個文件,下載網頁 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum[0], sum[1], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	}
	logs.Log.Informational(" * ")
	logs.Log.Informational(` *********************************************************************************************************************************** `)

	// 單機模式並發運行,需要標記任務結束
	if self.AppConf.Mode == status.OFFLINE {
		self.status = status.STOP
		self.finishOnce.Do(func() { close(self.finish) })
	}
}
開發者ID:smypai,項目名稱:pholcus,代碼行數:64,代碼來源:app.go

示例6: goRun

// 任務執行
func (self *Logic) goRun(count int) {
	for i := 0; i < count && self.Status() != status.STOP; i++ {
	wait:
		if self.Status() == status.PAUSE {
			time.Sleep(1e9)
			goto wait
		}
		// 從爬行隊列取出空閑蜘蛛,並發執行
		c := self.CrawlPool.Use()
		if c != nil {
			go func(i int, c crawl.Crawler) {
				// 執行並返回結果消息
				c.Init(self.SpiderQueue.GetByIndex(i)).Start()
				// 任務結束後回收該蜘蛛
				self.CrawlPool.Free(c)
			}(i, c)
		}
	}

	// 監控結束任務
	for i := 0; i < count && self.Status() != status.STOP; i++ {
		s := <-cache.ReportChan
		if (s.DataNum == 0) && (s.FileNum == 0) {
			continue
		}
		logs.Log.Informational(" * ")
		switch {
		case s.DataNum > 0 && s.FileNum == 0:
			logs.Log.Notice(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.DataNum, s.Time)
		case s.DataNum == 0 && s.FileNum > 0:
			logs.Log.Notice(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共下載文件 %v 個,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.FileNum, s.Time)
		default:
			logs.Log.Notice(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條 + 下載文件 %v 個,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.DataNum, s.FileNum, s.Time)
		}
		logs.Log.Informational(" * ")

		self.sum[0] += s.DataNum
		self.sum[1] += s.FileNum
	}

	// 總耗時
	self.takeTime = time.Since(cache.StartTime).Minutes()
	var prefix = func() string {
		if self.Status() == status.STOP {
			return "任務中途取消:"
		}
		return "本次"
	}()
	// 打印總結報告
	logs.Log.Informational(` *********************************************************************************************************************************** `)
	logs.Log.Informational(" * ")
	switch {
	case self.sum[0] > 0 && self.sum[1] == 0:
		logs.Log.Notice(" *                            —— %s合計輸出 %v 條數據,實爬URL %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", prefix, self.sum[0], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), self.takeTime)
	case self.sum[0] == 0 && self.sum[1] > 0:
		logs.Log.Notice(" *                            —— %s合計輸出 %v 個文件,實爬URL %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", prefix, self.sum[1], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), self.takeTime)
	default:
		logs.Log.Notice(" *                            —— %s合計輸出 %v 條數據 + %v 個文件,實爬URL %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", prefix, self.sum[0], self.sum[1], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), self.takeTime)
	}
	logs.Log.Informational(" * ")
	logs.Log.Informational(` *********************************************************************************************************************************** `)

	// 單機模式並發運行,需要標記任務結束
	if self.AppConf.Mode == status.OFFLINE {
		self.setStatus(status.STOP)
		self.LogRest()
		self.finishOnce.Do(func() { close(self.finish) })
	}
}
開發者ID:jununfly,項目名稱:pholcus,代碼行數:70,代碼來源:app.go

示例7: goRun

// 任務執行
func (self *Logic) goRun(count int) {
	for i := 0; i < count && status.Crawl == status.RUN; i++ {
		// 從爬行隊列取出空閑蜘蛛,並發執行
		c := Pholcus.Crawls.Use()
		if c != nil {
			go func(i int, c crawl.Crawler) {
				// 執行並返回結果消息
				c.Init(Pholcus.Spiders.GetByIndex(i)).Start()
				// 任務結束後回收該蜘蛛
				Pholcus.Crawls.Free(c.GetId())
			}(i, c)
		}
	}

	// 監控結束任務
	sum := [2]uint{} //數據總數
	for i := 0; i < count; i++ {
		s := <-cache.ReportChan
		if (s.DataNum == 0) && (s.FileNum == 0) {
			continue
		}
		log.Printf(" * ")
		switch {
		case s.DataNum > 0 && s.FileNum == 0:
			reporter.Log.Printf(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.DataNum, s.Time)
		case s.DataNum == 0 && s.FileNum > 0:
			reporter.Log.Printf(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共下載文件 %v 個,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.FileNum, s.Time)
		default:
			reporter.Log.Printf(" *     [輸出報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條 + 下載文件 %v 個,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.DataNum, s.FileNum, s.Time)
		}
		log.Printf(" * ")

		sum[0] += s.DataNum
		sum[1] += s.FileNum
	}

	// 總耗時
	takeTime := time.Since(cache.StartTime).Minutes()

	// 打印總結報告
	log.Println(` *********************************************************************************************************************************** `)
	log.Printf(" * ")
	switch {
	case sum[0] > 0 && sum[1] == 0:
		reporter.Log.Printf(" *                            —— 本次合計抓取 %v 條數據,下載頁麵 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum[0], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	case sum[0] == 0 && sum[1] > 0:
		reporter.Log.Printf(" *                            —— 本次合計抓取 %v 個文件,下載頁麵 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum[1], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	default:
		reporter.Log.Printf(" *                            —— 本次合計抓取 %v 條數據 + %v 個文件,下載網頁 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum[0], sum[1], cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	}
	log.Printf(" * ")
	log.Println(` *********************************************************************************************************************************** `)

	// 標記結束
	self.finish <- true
}
開發者ID:kaca,項目名稱:pholcus,代碼行數:57,代碼來源:app.go

示例8: goRun

// 任務執行
func (self *Logic) goRun(count int) {
	for i := 0; i < count && status.Crawl == status.RUN; i++ {
		// 從爬行隊列取出空閑蜘蛛,並發執行
		c := Pholcus.Crawls.Use()
		if c != nil {
			go func(i int, c crawl.Crawler) {
				// 執行並返回結果消息
				c.Init(Pholcus.Spiders.GetByIndex(i)).Start()
				// 任務結束後回收該蜘蛛
				Pholcus.Crawls.Free(c.GetId())
			}(i, c)
		}
	}

	// 監控結束任務
	sum := 0 //數據總數
	for i := 0; i < count; i++ {
		s := <-cache.ReportChan

		log.Printf(" * ")
		reporter.Log.Printf(" *     [結束報告 -> 任務:%v | 關鍵詞:%v]   共輸出數據 %v 條,用時 %v 分鍾!\n", s.SpiderName, s.Keyword, s.Num, s.Time)
		log.Printf(" * ")

		if slen, err := strconv.Atoi(s.Num); err == nil {
			sum += slen
		}
	}

	// 總耗時
	takeTime := time.Since(cache.StartTime).Minutes()

	// 打印總結報告
	log.Println(` *********************************************************************************************************************************** `)
	log.Printf(" * ")
	reporter.Log.Printf(" *                            —— 本次抓取合計 %v 條數據,下載頁麵 %v 個(成功:%v,失敗:%v),耗時:%.5f 分鍾 ——", sum, cache.GetPageCount(0), cache.GetPageCount(1), cache.GetPageCount(-1), takeTime)
	log.Printf(" * ")
	log.Println(` *********************************************************************************************************************************** `)

	// 標記結束
	self.finish <- true
}
開發者ID:sunqb,項目名稱:pholcus,代碼行數:42,代碼來源:app.go


注:本文中的github.com/henrylee2cn/pholcus/runtime/cache.GetPageCount函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。