大量并发HTTP连接

时间:2016-07-06 20:33:40

标签: erlang elixir

我是Elixir(和Erlang)的新手,所以请耐心等待。我试图模拟与服务器的大量连接。我想在一个Task中包含以下内容并运行大量此类任务。以下是任务的伪代码:

def connect() do
  conn = create_connection(url) # connect only once
  idle(conn)
end

def idle(conn) do
  http_post(conn, getbody()) #this will give a heartbeat after 1 minute
  idle(conn) # reconnect using existing connection
end

以下是作为孩子添加任务的主管:

import Supervisor.Spec

children = [
  worker(Task, [], restart: :transient)
]
opts = [strategy: :simple_one_for_one, name: D.S]
Supervisor.start_link(children, opts)

每次需要新连接时,都会调用此连接: Supervisor.start_child(D.S, [ fn -> connect() end ])

我使用过猎枪http客户端库。但问题是我只能连接8k左右。之后我收到了File operation error: system_limit. Target: wxTextAttr.beam. Function: get_file. Process: code_server等各种错误。

我有两个问题:

  1. 为什么我收到上述错误?
  2. 是否有其他轻量级HTTP客户端库允许重用现有连接,并且在大量使用时没有达到任何系统限制?

0 个答案:

没有答案