wpool
Worker pool main interface.
Worker pool main interface. Use functions provided by this module to manage your pools of workers
Types
available_worker_timeout() = timeout()
name() = atom()
option() = {overrun_warning, infinity | pos_integer()} | {overrun_handler, {Module::atom(), Fun::atom()}} | {workers, pos_integer()} | {worker_opt, options() (see module gen)} | {worker, {Module::atom(), InitArg::term()}} | {strategy, strategy() (see module supervisor)}
stats() = [{workers, pos_integer()} | {total_message_queue_len, non_neg_integer()} | {worker_stats, [{pos_integer(), worker_stats()}]}]
strategy() = best_worker | random_worker | next_worker | available_worker | {hash_worker, non_neg_integer()}
worker_stats() = [{messsage_queue_len, non_neg_integer()} | {memory, pos_integer()}]
Functions
start() -> ok | {error, {already_started, wpool}}
Starts the application
stop() -> ok
Stops the application
start_pool(Name::name()) -> {ok, pid()}
Equivalent to start_pool(Name, []).
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(Name::name()) -> {ok, pid()}
Equivalent to start_sup_pool(Name, []).
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
stop_pool(Name::name()) -> ok
Stops the pool
default_strategy() -> strategy()
Default strategy
call(Sup::name(), Call::term()) -> term()
Equivalent to call(Sup, Call, default_strategy()).
call(Sup::name(), Call::term(), Strategy::strategy()) -> term()
Equivalent to call(Sup, Call, Strategy, 5000).
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(Sup::name(), Call::term(), Strategy::strategy(), Worker_Timeout::available_worker_timeout(), Timeout::timeout()) -> term()
Picks a server and issues the call to it. For all strategies except available_worker, Worker_Timeout is ignored For available_worker Worker_Timeout is the time used choosing a worker
cast(Sup::name(), Cast::term()) -> ok
Equivalent to cast(Sup, Cast, default_strategy()).
cast(Sup::name(), Cast::term(), Strategy::strategy()) -> ok
Picks a server and issues the cast to it
stats(Sup::name()) -> stats()
Retrieves a snapshot of the pool stats