【文件属性】:
文件名称:Erlang进程池WorkerPool.zip
文件大小:52KB
文件格式:ZIP
更新时间:2022-08-05 02:19:22
开源项目
Worker Pool 是一个Erlang进程池,其中的工作进程是Erlang的gen server模式进程。Worker Pool的目标是非常简单: 提供以透明的方式管理一批工作进程并且对分配到池中的任务尽最大努力实现负载均衡。一个 Echo 服务器示例:-module(echo_server).
-author('elbrujohalcon@inaka.net').
-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.
标签:Worker
【文件预览】:
worker_pool-master
----.awconfig(4B)
----ci(647B)
----rebar.lock(4B)
----src()
--------wpool_process.erl(9KB)
--------wpool_worker.erl(4KB)
--------wpool_process_callbacks.erl(2KB)
--------wpool_process_sup.erl(2KB)
--------worker_pool.app.src(1KB)
--------wpool_queue_manager.erl(10KB)
--------wpool_utils.erl(2KB)
--------wpool.erl(8KB)
--------wpool_sup.erl(2KB)
--------wpool_pool.erl(16KB)
--------wpool_time_checker.erl(5KB)
----elvis.config(1KB)
----Emakefile(685B)
----.travis.yml(288B)
----LICENSE(11KB)
----test()
--------wpool_process_SUITE.erl(11KB)
--------wpool_pool_SUITE.erl(15KB)
--------wpool_SUITE.erl(14KB)
--------wpool_worker_SUITE.erl(3KB)
--------echo_server.erl(2KB)
--------wpool_process_callbacks_SUITE.erl(7KB)
--------sleepy_server.erl(2KB)
--------wpool_bench.erl(1KB)
--------wpool_meta_SUITE.erl(738B)
--------crashy_server.erl(2KB)
----README.md(9KB)
----rebar.config(3KB)
----.gitignore(99B)
----CHANGELOG.md(20KB)