从英文来看是调度程序 我们看看是怎么调度
首先爬虫队列有两个 一个是保存在内存中 没有历史记录 重新开始 42 行 self.mqs = self.pqclass(self._newmq)
另外一个是存在硬盘的队列 用于断点续传 大家看 43 行 self._dq() if self.dqdir else None 先是判断 是否有 join(jobdir,'requests.queue') 这个文件 (保存已抓取 request hash)
然后 获取 join(self.dqdir,'active.json') 该文件是已经塞入队列但没有抓取的 url
53 行 def enqueue_request 塞入队列 先保存硬盘队列 然后不行 再保存内存队列
66 行 def next_request(self): 获取队列
来源: http://www.bubuko.com/infodetail-2458281.html