【发布时间】:2012-10-13 13:56:14
【问题描述】:
这些是我在 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]).
【问题讨论】:
-
您可以选择使用 +P 标志增加进程数:erlang.org/pipermail/erlang-questions/2002-December/006329.html
标签: exception concurrency erlang process