Elixir 长生不老药:GenStage拓扑
出于自我教育的目的,我试着学习长生不老药,并在Elixir 长生不老药:GenStage拓扑,elixir,genstage,Elixir,Genstage,出于自我教育的目的,我试着学习长生不老药,并在GenStagelibrary周围绞尽脑汁 我阅读了文档,大部分都得到了它,但是对于我的特定领域,我有几个问题 我试图建立一个网页刮板,它应该每天启动几次,并做一些刮板和后处理 第一个问题 因此,我最重要的生产者是一个阶段,它发出HTTP请求并将它们交给消费者 我如何处理这里的“等待6小时” 我应该只接受需求,而向消费者发送空事件吗?这听起来像是在浪费CPU周期 也许,GenStage对于此类事件不是一种正确的方法 第二个问题 有时我需要将事件返回到
GenStage
library周围绞尽脑汁
我阅读了文档,大部分都得到了它,但是对于我的特定领域,我有几个问题
我试图建立一个网页刮板,它应该每天启动几次,并做一些刮板和后处理
第一个问题
因此,我最重要的生产者是一个阶段
,它发出HTTP请求并将它们交给消费者
我如何处理这里的“等待6小时”
我应该只接受需求,而向消费者发送空事件吗?这听起来像是在浪费CPU周期
也许,GenStage
对于此类事件不是一种正确的方法
第二个问题
有时我需要将事件返回到链
加载页面#nProducerConsumerA
解析页面并将页面上找到的项目的事件发送给下一个消费者。但它也应该为下一页的ProducerConsumerB
发送一个事件(如果结果已分页)ProducerConsumerA
任务
来处理数据,然后获取下一个站点,每次启动一个新的处理任务
当您完成所有站点的报废后,您可以使用过程。在之后发送\u以发送唤醒消息,启动下一个报废周期
这将使你对长生不老药和OTP有一个很好的了解。一旦这些都起作用了,就可以进一步调查GenStage了 如果您要等待6个小时,即在您的计算机上运行6个小时的Erlang VM,那么启动elixir程序的cron作业可能会更有效率。