我是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
等各种错误。
我有两个问题: