抽象出task的概念,FetchWorker和PersistWorker共用一个Engine和Scheduler

来源:19-2 课程总结

慕数据0471255

2018-07-11

老师,您好!我已经看完您的课程,现在想把您分布式爬虫的思路思路运用到后台实时统计系统的设计中。您在课程中提到,可以抽象出task的概念,有FetchWorker,和PersistWorker ,两个Worker共用一个Engine和Scheduler,我在实际的项目中就需要这种设计,但在您的项目中还没找到思路,请老师指点一下应该如何改?或者提供一个方向给我,谢谢!

写回答

1回答

ccmouse

2018-07-13

我们可以参考一下java的java executor framework。他可以给executor.submit(task),然后得到一个叫做Future的,可以通过他来等待任务结束。
那我们到了go语言中,直观的做法是只要做一个Submit接口,传一个函数进去就行。这个函数返回值如何给出来不用考虑。让使用者自己通过channel搞定。比如:
out:=make(chan Result)
task:=func(){
result :=doWork()
out<-result
}
executor.submit(task)

0
1
慕数据0471255
非常感谢!
2018-07-14
共1条回复

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

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

5995 学习 · 1909 问题

查看课程