从英文来看是调度程序 我们看看是怎么调度
首先爬虫队列有两个 一个是保存在内存中 没有历史记录 重新开始 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): 获取队列