makeWorker 方法的 ready 参数可以省略吗?

来源:18-8 完整分布式爬虫的运行

hen_nam

2022-02-11

func (e *ConcurrentEngine) makeWorker(in chan Request, out chan ParseResult) {
	go func() {
		for {
			e.Scheduler.WorkerReady(in)
			request := <-in
			result, err := e.Processor(request)
			if err != nil {
				continue
			}
			out <- result
		}
	}()
}
写回答

1回答

ccmouse

2022-02-17

这个WorkerReady方法是通知scheduler说我这个worker此时可以接收新的request,所以这里调用了WorkerReady之后,就开始收request:=<-in了。不然的话,scheduler不知道我ready,也就不会往我这个in里面发送数据了。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程