mirror of
https://github.com/valitydev/woody_erlang.git
synced 2024-11-06 02:15:19 +00:00
MG-64: correct woody_client:child_spec name (#52)
This commit is contained in:
parent
7650c1f9f1
commit
d6f0de5a35
@ -56,13 +56,13 @@ Erlang реализация [Библиотеки RPC вызовов для об
|
||||
`woody_context:new/0` - можно использовать для создания контекста корневого запроса с автоматически сгенерированным уникальным RPC ID.
|
||||
|
||||
Можно создать пул соединений для thrift клиента (например, для установления _keep alive_ соединений с сервером). Для этого надо использовать
|
||||
`woody_client:connection_pool_spec/2`. Для работы с определенным пулом в Options есть поле `transport_opts => [{pool, pool_name}, {timeout, 150000}, {max_connections, 100}]`.
|
||||
`woody_client:child_spec/2`. Для работы с определенным пулом в Options есть поле `transport_opts => [{pool, pool_name}, {timeout, 150000}, {max_connections, 100}]`.
|
||||
|
||||
```erlang
|
||||
15> Opts = Opts#{transport_opts => [{pool, my_client_pool}]}.
|
||||
16> supervisor:start_child(Sup, woody_client:connection_pool_spec(Opts)).
|
||||
15> Opts1 = Opts#{transport_opts => [{pool, my_client_pool}]}.
|
||||
16> supervisor:start_child(Sup, woody_client:child_spec(Opts1)).
|
||||
17> Context2 = woody_context:new(<<"myUniqRequestID2">>).
|
||||
18> {ok, Result2} = woody_client:call(Request, Opts, Context2).
|
||||
18> {ok, Result2} = woody_client:call(Request, Opts1, Context2).
|
||||
```
|
||||
|
||||
`Context` также позволяет аннотировать RPC запросы дополнительными мета данными в виде _key-value_. `Context` передается только в запросах и его расширение возможно только в режиме _append-only_ (т.е. на попытку переопределить уже существующую запись в `context meta`, библиотека вернет ошибку). Поскольку на транспортном уровне контекст передается в виде custom HTTP заголовков, синтаксис _key-value_ должен следовать ограничениям [RFC7230 ](https://tools.ietf.org/html/rfc7230#section-3.2.6). Размер ключа записи метаданных не должен превышать _53 байта_ (см. остальные требования к метаданным в [описании библиотеки](http://coredocs.rbkmoney.com/design/ms/platform/rpc-lib/#rpc_2)).
|
||||
|
@ -6,7 +6,7 @@
|
||||
-include("woody_defs.hrl").
|
||||
|
||||
%% API
|
||||
-export([connection_pool_spec/1]).
|
||||
-export([child_spec/1]).
|
||||
-export([call /2]).
|
||||
-export([call /3]).
|
||||
|
||||
@ -30,10 +30,10 @@
|
||||
%%
|
||||
%% API
|
||||
%%
|
||||
-spec connection_pool_spec(options()) ->
|
||||
-spec child_spec(options()) ->
|
||||
supervisor:child_spec().
|
||||
connection_pool_spec(Options) ->
|
||||
woody_client_behaviour:connection_pool_spec(Options).
|
||||
child_spec(Options) ->
|
||||
woody_client_behaviour:child_spec(Options).
|
||||
|
||||
-spec call(woody:request(), options()) ->
|
||||
{ok, woody:result()} |
|
||||
|
@ -1,17 +1,17 @@
|
||||
-module(woody_client_behaviour).
|
||||
|
||||
-export([connection_pool_spec/1]).
|
||||
-export([child_spec/1]).
|
||||
-export([call /3]).
|
||||
|
||||
%% Behaviour definition
|
||||
-callback call(woody:request(), woody_client:options(), woody_context:ctx()) -> woody_client:result().
|
||||
-callback connection_pool_spec(woody_client:options()) -> supervisor:child_spec().
|
||||
-callback child_spec(woody_client:options()) -> supervisor:child_spec().
|
||||
|
||||
-spec connection_pool_spec(woody_client:options()) ->
|
||||
-spec child_spec(woody_client:options()) ->
|
||||
supervisor:child_spec().
|
||||
connection_pool_spec(Options) ->
|
||||
child_spec(Options) ->
|
||||
Handler = woody_util:get_protocol_handler(client, Options),
|
||||
Handler:connection_pool_spec(Options).
|
||||
Handler:child_spec(Options).
|
||||
|
||||
-spec call(woody:request(), woody_client:options(), woody_context:ctx()) ->
|
||||
woody_client:result().
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
%% woody_client_behaviour callback
|
||||
-export([call /3]).
|
||||
-export([connection_pool_spec/1]).
|
||||
-export([child_spec/1]).
|
||||
|
||||
%% Types
|
||||
-type thrift_client() :: term().
|
||||
@ -18,10 +18,10 @@
|
||||
%%
|
||||
%% API
|
||||
%%
|
||||
-spec connection_pool_spec(woody_client:options()) ->
|
||||
-spec child_spec(woody_client:options()) ->
|
||||
supervisor:child_spec().
|
||||
connection_pool_spec(Options) ->
|
||||
woody_client_thrift_http_transport:connection_pool_spec(get_transport_opts(Options)).
|
||||
child_spec(Options) ->
|
||||
woody_client_thrift_http_transport:child_spec(get_transport_opts(Options)).
|
||||
|
||||
-spec call(woody:request(), woody_client:options(), woody_context:ctx()) ->
|
||||
woody_client:result().
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
%% API
|
||||
-export([new /3]).
|
||||
-export([connection_pool_spec/1]).
|
||||
-export([child_spec/1]).
|
||||
|
||||
%% Thrift transport callbacks
|
||||
-export([read/2, write/2, flush/1, close/1]).
|
||||
@ -47,9 +47,9 @@ new(Url, Opts, Context) ->
|
||||
}),
|
||||
Transport.
|
||||
|
||||
-spec connection_pool_spec(options()) ->
|
||||
-spec child_spec(options()) ->
|
||||
supervisor:child_spec().
|
||||
connection_pool_spec(Options) ->
|
||||
child_spec(Options) ->
|
||||
Name = proplists:get_value(pool, Options),
|
||||
hackney_pool:child_spec(Name, Options).
|
||||
|
||||
|
@ -252,7 +252,7 @@ start_woody_server_with_pools(Id, Sup, Services, Params) ->
|
||||
}),
|
||||
{ok, WoodyServer} = supervisor:start_child(Sup, Server),
|
||||
|
||||
Specs = [woody_client:connection_pool_spec(pool_opts(Pool)) || Pool <- Params],
|
||||
Specs = [woody_client:child_spec(pool_opts(Pool)) || Pool <- Params],
|
||||
|
||||
_ = [supervisor:start_child(WoodyServer, Spec) || Spec <- Specs],
|
||||
ok.
|
||||
|
Loading…
Reference in New Issue
Block a user