a
Size: a a a
a
СИ
AK
AK
YZ
YZ
YZ
SP
1_000
не из Elixir а Rust утащил!!SP
SP
SP
SP
-module(my_db).
-export([start_link/1, with_connection/1]).
start_link(Opts) ->
epgsql:connect(Opts).
with_connection(Fun) ->
C = pooler:take_member(?MODULE, {1, sec}),
true = (C =/= error_no_members),
Res =
try Fun(C)
catch Err:Reason ->
pooler:return_member(?MODULE, C, fail),
erlang:raise(Err, Reason, erlang:get_stacktrace())
end,
pooler:return_member(?MODULE, C, ok),
Res.
my_db:with_connection(
fun(C) ->
{ok, _, Rows} = epgsql:equery(C, "SELECT * FROM users"),
<...>
end).
SP
start
коллбеке что-то типаDbPool = [{name, my_db},
{start_mfa, {my_db, start_link, [EpgsqlOpts]}}
| PoolExtraOpts],
pooler:new_pool(DbPool),
YZ
YZ
YZ
SP
SP
YZ