并发版爬虫引入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
经过调试已发现问题所在,是因为链接被判重了导致无法被再次执行抓取数据的任务
00
相似问题