之前前面提到 爬虫 ,只是单纯的单条执行,既然用go来写爬虫,那么必须要用到 并发来做这件事情
废话不多说,先上 设计图
1 首先整个结构分为三层
第一层 定时更新器 层 timerupdate
第二层 调度层 dispatch
第三层 协程池层 pools
关系为
一个定时更新器—> 对应一个 调度器 也就是调度器管理一个定时更新器
比分说 有10个定时器 就对应有10 个调度器 ,比如控制一个调度器,开启一个定时器,或者stop 一个定时器
然后 调度层 管理多个调度器
调度层的功能主要是负责 创建一个调度器,通知一个调度器,去管理它自己的对应的 定时更新器
多个调度器里面的 任务 汇聚一起 发送给 任务池中 pools
//-------------------------下面是整个程序的执行顺序----------------------------
首先 当我们有任务来了,比方说抓取爬虫任务,我要抓取几个书籍分类的,但是众所周知 一个网站中一个分类下面有成千上万本书籍
但是我要同时抓取 这个网站上面所有 分类下面的,