Module wpool

Worker pool main interface.

Authors: Fernando Benavides (elbrujohalcon@inaka.net).

Description

Worker pool main interface. Use functions provided by this module to manage your pools of workers

Data Types

available_worker_timeout()

available_worker_timeout() = timeout()

name()

name() = atom()

option()

option() = {overrun_warning, infinity | pos_integer()} | {overrun_handler, {Module::atom(), Fun::atom()}} | {workers, pos_integer()} | {worker_opt, gen:options()} | {worker, {Module::atom(), InitArg::term()}} | {strategy, supervisor:strategy()}

stats()

stats() = [{workers, pos_integer()} | {total_message_queue_len, non_neg_integer()} | {worker_stats, [{pos_integer(), worker_stats()}]}]

strategy()

strategy() = best_worker | random_worker | next_worker | available_worker | {hash_worker, non_neg_integer()}

worker_stats()

worker_stats() = [{messsage_queue_len, non_neg_integer()} | {memory, pos_integer()}]

Function Index

call/2Equivalent to call(Sup, Call, default_strategy()).
call/3Equivalent to call(Sup, Call, Strategy, 5000).
call/4Picks a server and issues the call to it.
call/5Picks a server and issues the call to it.
cast/2Equivalent to cast(Sup, Cast, default_strategy()).
cast/3Picks a server and issues the cast to it.
default_strategy/0Default strategy.
start/0Starts the application.
start_pool/1Equivalent to start_pool(Name, []).
start_pool/2Starts (and links) a pool of N wpool_processes.
start_sup_pool/1Equivalent to start_sup_pool(Name, []).
start_sup_pool/2Starts a pool of N wpool_processes supervised by wpool_sup
stats/1Retrieves a snapshot of the pool stats.
stop/0Stops the application.
stop_pool/1Stops the pool.

Function Details

call/2

call(Sup::name(), Call::term()) -> term()

Equivalent to call(Sup, Call, default_strategy()).

call/3

call(Sup::name(), Call::term(), Strategy::strategy()) -> term()

Equivalent to call(Sup, Call, Strategy, 5000).

call/4

call(Sup::name(), Call::term(), Strategy::strategy(), Timeout::timeout()) -> term()

Picks a server and issues the call to it. For all strategies except available_worker, Timeout applies only to the time spent on the actual call to the worker, because time spent finding the worker in other strategies is negligible. For available_worker the time used choosing a worker is also considered

call/5

call(Sup::name(), Call::term(), Strategy::strategy(), WorkerTimeout::available_worker_timeout(), Timeout::timeout()) -> term()

Picks a server and issues the call to it. For all strategies except available_worker, WorkerTimeout is ignored For available_worker the total timeout will be WorkerTimeout + Timeout.

cast/2

cast(Sup::name(), Cast::term()) -> ok

Equivalent to cast(Sup, Cast, default_strategy()).

cast/3

cast(Sup::name(), Cast::term(), Strategy::strategy()) -> ok

Picks a server and issues the cast to it

default_strategy/0

default_strategy() -> strategy()

Default strategy

start/0

start() -> ok | {error, {already_started, '?MODULE'}}

Starts the application

start_pool/1

start_pool(Name::name()) -> {ok, pid()}

Equivalent to start_pool(Name, []).

start_pool/2

start_pool(Name::name(), Options::[option()]) -> {ok, pid()} | {error, {already_started, pid()} | term()}

Starts (and links) a pool of N wpool_processes. The result pid belongs to a supervisor (in case you want to add it to a supervisor tree)

start_sup_pool/1

start_sup_pool(Name::name()) -> {ok, pid()}

Equivalent to start_sup_pool(Name, []).

start_sup_pool/2

start_sup_pool(Name::name(), Options::[option()]) -> {ok, pid()} | {error, {already_started, pid()} | term()}

Starts a pool of N wpool_processes supervised by wpool_sup

stats/1

stats(Sup::name()) -> stats()

Retrieves a snapshot of the pool stats

stop/0

stop() -> ok

Stops the application

stop_pool/1

stop_pool(Name::name()) -> ok

Stops the pool


Generated by EDoc, Dec 5 2015, 13:39:11.