并发版爬虫引入cron定时调用时只能运行一次的问题

来源:16-1 并发版爬虫架构

anray

2018-03-28

在老师代码的基础上尝试爬取别的网站,并引入github.com/robfig/cron来实现定时调用,发现程序只能被执行一次。大部分代码沿用了老师的并发版爬虫的代码,只增加了新的Parse,以及cron的代码,不知还需要在程序中怎么做修改,还请各位老师给予指导,谢谢!代码如下:

func job()  {
  itemChan, err := persist.ItemSaver(config.ElasticIndex)
  if err != nil {
     panic(err)
  }

  e := engine.ConcurrentEngine{
     Scheduler:        &scheduler.QueuedScheduler{},
     WorkerCount:      10,
     ItemChan:         itemChan,
     RequestProcessor: engine.Worker,
  }

  e.Run(engine.Request{
     Url:        "http://xxx",
     Parser: engine.NewFuncParser(
        xxx.ParseXXX,
        config.ParseXXX),
  })
}

func main() {
  c := cron.New()
  c.AddFunc("@every 1m", job)
  c.Start()
  select{}
}

写回答

1回答

anray

提问者

2018-03-28

经过调试已发现问题所在,是因为链接被判重了导致无法被再次执行抓取数据的任务

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程