我正在尝试使用gen_server从erlang中插入redis中的10000条记录。但是,我得到以下异常
exception exit: {connection_error,{connection_error,eaddrnotavail}}
注意: -
答案 0 :(得分:2)
有它工作:)发布答案,以便它可以帮助其他人......
问题是内核TIME_WAIT。
Eredis正在使用gen_tcp,因为我在快速网络中并生成10000个连接许多连接处于TIME_WAIT状态,而eredis正在使用resuse addr为true所以虽然我在我的代码OS中关闭了连接但是端口是在TIME_WAIT状态,erlang再次尝试连接到该端口。
答案 1 :(得分:1)
感谢发布。 也发布了一些我的更改。
从
更改eredis.hrl-define(SOCKET_OPTS,[binary,{active,once},{packet,raw},{reuseaddr,true}])。
到
-define(SOCKET_OPTS,[binary,{active,once},{packet,raw},{reuseaddr,false}])。