首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行HTTP请求的Erlang网络问题

并行HTTP请求的Erlang网络问题
EN

Stack Overflow用户
提问于 2018-02-10 02:54:40
回答 1查看 82关注 0票数 0

我目前正在构建一个HTTP服务器来提供地理信息。

第一步是使用geonames.org中的地理信息填充此服务器

我想自动执行这个过程,因为GeoNames文件会定期更改,所以我编写了一个函数,尝试并行下载所需的文件。

下载初始文本和ZIP文件很好,但下一步是解析下载的文件countryInfo.txt,提取所有ISO国家代码,然后为每个国家代码下载相应的ZIP文件。

当我将国家代码列表限制在十几个左右,或者按顺序执行下载时,我的代码工作得很好。但是,当我尝试并行请求所有252个文件时,我收到来自httpc:request/4的“连接失败”错误。

编码可以从这个Git存储库获得。(https://github.com/ChrisWhealy/Erlang/tree/master/geo_server)

这个错误是由于geonames.org web服务器上的请求节流还是我代码中的某些东西造成的?

谢谢

克里斯·W

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-10 03:22:08

派生数百个进程,每个进程都连接到同一服务器,这通常是一个非常糟糕的想法,以至于它甚至被认为是一个attack。最有可能的情况是,某些防火墙规则开始生效,并开始拒绝更多连接。

尝试使用某种线程池(如this)来对所有请求进行排队,并并行执行大约10-20个请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48712352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档