SEARU.ORG
当前位置:SEARU.ORG > Linux 软件 > 正文

Erlang进程池 Worker Pool

Worker Pool 是一个Erlang进程池,其中的工作进程是Erlang的gen server模式进程。

Worker Pool的目标是非常简单: 提供以透明的方式管理一批工作进程并且对分配到池中的任务尽最大努力实现负载均衡。

一个 Echo 服务器示例:

-module(echo_server).
-author('[email protected]').

-behaviour(gen_server).

%% gen_server callbacks
-export([init/1, terminate/2, code_change/3,
         handle_call/3, handle_cast/2, handle_info/2]).

-dialyzer([no_behaviours]).

%%%===================================================================
%%% callbacks
%%%===================================================================
-spec init(Something) -> Something.
init(Something) -> Something.

-spec terminate(Any, term()) -> Any.
terminate(Reason, _State) -> Reason.

-spec code_change(string(), State, any()) -> {ok, State}.
code_change(_OldVsn, State, _Extra) -> {ok, State}.

-spec handle_info(timeout | Info, term()) -> {noreply, timeout} | Info.
handle_info(timeout, _State) -> {noreply, timeout};
handle_info(Info, _State) -> Info.

-spec handle_cast(Cast, term()) -> Cast.
handle_cast(Cast, _State) -> Cast.

-type from() :: {pid(), reference()}.
-spec handle_call(state | Call, from(), State) -> {reply, State, State} | Call.
handle_call(state, _From, State) -> {reply, State, State};
handle_call(Call, _From, _State) -> Call.

未经允许不得转载:SEARU.ORG » Erlang进程池 Worker Pool

赞 (0)
分享到:更多 ()

评论 0