本文整理匯總了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
}
示例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) })
}
示例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) })
}
示例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) })
}
}
示例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) })
}
}
示例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) })
}
}
示例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
}
示例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
}