我研究Elixir,例如决定为代理列表制作ping应用程序。其实质是您需要使用代理定期从列表中下载链接,并在许多线程中ping此列表,只留下实时代理。我认为:
有一个pinger进程的主管。每个pinger都知道他的配置(ping和stuff的超时)。一旦启动,pinger就会向导入程序进程发送一条消息"给我一个代理ping"并等待回复。
有一位进口商主管。导入器接受一条消息,要求为ping提供代理,如果他的代理列表为空,则只要没有代理,就会回答pinger""并下载新代理列表。之后,等待来自pingers的消息。收到消息后,他发送有关代理pingger的信息。 Pinger完成了自己的工作,向ping的结果发送了一条消息给导入者。导入器存储代理。
这个方案是否最佳?计划的pingers不会超过1000,但不能少于500.为ping构建代理并通过进程之间的消息返回结果是否合适?进口商是否会设法回应来自pingers的消息?或者让导入器下载代理列表更好,例如,在redis中,并且pingers本身从那里获取ping代理并自己处理结果?