colly 第三课 Queue队列实现原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolipengzhanshen/article/details/88977927

使用queue队列来进行爬虫爬取web网页的步骤

1.创建并初始化Collector

2.使用queue.New创建队列

3.调用queue的AddRequest()或AddURL方法,将请求或url链接投递到队列中,等待其他协程来进行消费

4.调用queue类的run方法,来消费队列中元素

源代码分析

试想下让你用go语言实现一个队列,你要如何来实现?

colly是用链表来实现队列Queue的

1.定义队列元素的结构

2.队列当前的大小以及最大容量

3.api:AddRequest:向队列中添加元素

GetRequest:从队列中取元素

4.多线程或多协程来访问队列时,如果保证并发安全 rwlock 读写锁

传递这个锁的时候,传递的是指向锁的指针

分析流程

  1. 创建队列New函数,涉及到相关的结构体
  2. AddRequest和AddURL函数,向队列中添加元素
  3. 分析Run方法,进而讲解到GetRequest,从队列中获取请求

猜你喜欢

转载自blog.csdn.net/haolipengzhanshen/article/details/88977927