本文整理汇总了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
}