这是我在Erlang中的第一步,所以对于这个新手问题很抱歉:) 我为每一个Redis请求生成一个新的Erlang进程,这不是我想要的(在32k Erlang进程时出现“过多的进程”),但是如何将进程的数量限制为最大16个呢?
-module(queue_manager).
-export([add_ids/0, add_id/2]).
add_ids() ->
{ok, Client} = eredis:start_link(),
do_spawn(Client, lists:seq(1,100000)).
do_spawn(Client, [H|T]) ->
Pid = spawn(?MODULE, add_id, [Client, H]),
do_spawn(Client, T);
do_spawn(_, []) -> none.
add_id(C, Id) ->
{ok, _} = eredis:q(C, ["SADD", "todo_queue", Id]).