试了下inets的http client,调用http:request方法,在单个进程内少量调用,或多个进程内少量调用都没有问题,但是只要调用次数达到几千以上,就会报错
错误信息基本就是bad_return_value,invalid version等等
不知道有没有人试过 大名鼎鼎的Richard Jones在 A Million-user Comet Application with Mochiweb里面的那个floodtest的例子,一样会报这个错误
receive
{http,{_Ref,stream_start,_X}} -> recv({Active+1,Closed,Chunks});
{http,{_Ref,stream,_X}} -> recv({Active, Closed, Chunks+1});
{http,{_Ref,stream_end,_X}} -> recv({Active-1, Closed+1, Chunks});
{http,{_Ref,{error,Why}}} ->
io:format("Closed: ~w\n",[Why]),
recv({Active-1, Closed+1, Chunks});
{loadurl, Url} ->
http:request(get, {Url, []}, [], [{sync, false}, {stream, self}, {version, 1.1}, {body_format, binary}]),
recv(Stats)
end.
这段代码是单个进程运行的,另外一个进程不断发{loadurl,url}的消息,让httpclient 不停调用request方法
我试了,用多个进程不停调用这个一样会报错,但是只要调用次数比较少,就不会出错,服务器端的资源限制等都没有任何问题
呼唤javaeye上的erlang大牛们给解释下吧
分享到:
相关推荐
通过适配器,Inets mod_xsl能够调用Sablotron来执行转换任务,确保了高效且准确的转换过程。 **开源软件的优势** 开源软件的核心优势在于透明度和社区支持。Inets mod_xsl的开源性质意味着任何用户都可以查看其源...
erlang-inets-19.3.6.4-1.el7.x86_64.rpm
OTP包含大量的标准库,如加密算法(crypto)、HTTP服务器(inets)、Mnesia分布式数据库、公共对话协议(public_key)、SSL支持、系统监控和管理(syslog、snmp)等。这些库为开发高效、可靠的系统提供了便利。 4....
- 监督树(Supervision Tree):OTP的监督树模型确保系统在组件失败时能够自动恢复,增强了系统的健壮性。 - 链接与监视(Linking & Monitoring):链接机制允许进程间检测彼此的死亡,而监视则能在不关联进程的...
在这个示例中,`inets:start()`启动了Erlang的HTTP客户端库,允许我们发送HTTP请求。`ApiKey`、`Channel_Id`、`Device_Type` 和 `Message_Type` 是构建请求所需的基本参数。`TitleStr` 和 `DescriptionStr` 定义了...
1. Erlang VM(虚拟机):BEAM(Binary Emulator),它是Erlang运行时的核心,负责执行Erlang代码。 2. 标准库:包含了各种预定义的模块,如lists、io、math等,为常见的编程任务提供函数支持。 3. 工具集:如编译器...
- **Inets**:提供了HTTP服务器和客户端,以及其他网络服务。 - **Crypto**:加密和哈希函数库。 - **Dialyzer**:静态代码分析工具,用于找出潜在的错误和类型不匹配。 - **公共API工具**:如XML和JSON解析器,日期...
2. **应用程序**:OTP包含许多预先编写好的应用,如Mnesia(分布式数据库)、Inets(网络服务)、Crypto(加密库)、PubSub(发布订阅系统)等,这些在23.0版本中可能有新的特性和bug修复。 3. **编译器和工具**:...
1> inets:start(). ... 2> Auth = {"ngerakines", "secretpassword!"}. 3> twitter_client:status_mentions(Auth, []). twitter_client:status_mentions({"ngerakines", "secretpassword"}, []). [{status,"Mon Nov...
依存关系共享给otter和公共库函数是常见的测试依赖项(即不属于生产版本) 为了避免外部依赖性,默认情况下,OTTER使用OTP inets HTTP客户端(httpc)将跨度发送到跟踪收集器。 但是,htc在高吞吐量方案中的声誉相当...
生成签名的功能(客户端),验证签名的功能(服务器端),以及一些用于发出OAuth HTTP请求的便捷功能(客户端)。 Erlang / OTP兼容性 Erlang / OTP 21或更高版本。 Rebar3兼容性 将erlang-oauth作为依赖项添加到您...
简单桥 通过创建标准化接口,SimpleBridge减轻了对多个Erlang HTTP服务器进行编码的麻烦。 它目前支持Cowboy,Inet,... 这意味着您可以在Inets,Mochiweb和Webmachine上运行websocket ,而本机都不支持Websockets。
休息服务简单的基于牛仔的 REST web 服务... ok 与服务交互: 1 > inets : start (). ok 2 > httpc : request ( get , { " http://localhost:8080/resource/123 " , []}, [], []). { ok ,{{ " HTTP/1.1 " , 404 , " No
根据在名称中愚蠢的位置插入“ erl”的实际惯例命名。 这主要是围绕httpc的便利包装。 例子: erl - pa ebin - boot start_sasl - s inets - s xmerl - s mechanizerl 1 > Mech = mechanizerl : new (). { ...
Java 获取 IP 地址与网络接口的方法是在 Java 编程中获取计算机的 IP 地址和网络接口信息的方法。以下是通过 Java 获取 IP 地址和网络接口的方法示例。 获取主机对象 在 Java 中,获取主机对象可以使用 `...