MG-64: correct woody_client:child_spec name (#52)

This commit is contained in:
Anton Belyaev 2017-03-04 14:37:17 +04:00 committed by GitHub
parent 7650c1f9f1
commit d6f0de5a35
6 changed files with 25 additions and 25 deletions

View File

@ -56,13 +56,13 @@ Erlang реализация [Библиотеки RPC вызовов для об
`woody_context:new/0` - можно использовать для создания контекста корневого запроса с автоматически сгенерированным уникальным RPC ID. `woody_context:new/0` - можно использовать для создания контекста корневого запроса с автоматически сгенерированным уникальным RPC ID.
Можно создать пул соединений для thrift клиента (например, для установления _keep alive_ соединений с сервером). Для этого надо использовать Можно создать пул соединений для 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 ```erlang
15> Opts = Opts#{transport_opts => [{pool, my_client_pool}]}. 15> Opts1 = Opts#{transport_opts => [{pool, my_client_pool}]}.
16> supervisor:start_child(Sup, woody_client:connection_pool_spec(Opts)). 16> supervisor:start_child(Sup, woody_client:child_spec(Opts1)).
17> Context2 = woody_context:new(<<"myUniqRequestID2">>). 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)). `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)).

View File

@ -6,7 +6,7 @@
-include("woody_defs.hrl"). -include("woody_defs.hrl").
%% API %% API
-export([connection_pool_spec/1]). -export([child_spec/1]).
-export([call /2]). -export([call /2]).
-export([call /3]). -export([call /3]).
@ -30,10 +30,10 @@
%% %%
%% API %% API
%% %%
-spec connection_pool_spec(options()) -> -spec child_spec(options()) ->
supervisor:child_spec(). supervisor:child_spec().
connection_pool_spec(Options) -> child_spec(Options) ->
woody_client_behaviour:connection_pool_spec(Options). woody_client_behaviour:child_spec(Options).
-spec call(woody:request(), options()) -> -spec call(woody:request(), options()) ->
{ok, woody:result()} | {ok, woody:result()} |

View File

@ -1,17 +1,17 @@
-module(woody_client_behaviour). -module(woody_client_behaviour).
-export([connection_pool_spec/1]). -export([child_spec/1]).
-export([call /3]). -export([call /3]).
%% Behaviour definition %% Behaviour definition
-callback call(woody:request(), woody_client:options(), woody_context:ctx()) -> woody_client:result(). -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(). supervisor:child_spec().
connection_pool_spec(Options) -> child_spec(Options) ->
Handler = woody_util:get_protocol_handler(client, 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()) -> -spec call(woody:request(), woody_client:options(), woody_context:ctx()) ->
woody_client:result(). woody_client:result().

View File

@ -7,7 +7,7 @@
%% woody_client_behaviour callback %% woody_client_behaviour callback
-export([call /3]). -export([call /3]).
-export([connection_pool_spec/1]). -export([child_spec/1]).
%% Types %% Types
-type thrift_client() :: term(). -type thrift_client() :: term().
@ -18,10 +18,10 @@
%% %%
%% API %% API
%% %%
-spec connection_pool_spec(woody_client:options()) -> -spec child_spec(woody_client:options()) ->
supervisor:child_spec(). supervisor:child_spec().
connection_pool_spec(Options) -> child_spec(Options) ->
woody_client_thrift_http_transport:connection_pool_spec(get_transport_opts(Options)). woody_client_thrift_http_transport:child_spec(get_transport_opts(Options)).
-spec call(woody:request(), woody_client:options(), woody_context:ctx()) -> -spec call(woody:request(), woody_client:options(), woody_context:ctx()) ->
woody_client:result(). woody_client:result().

View File

@ -7,7 +7,7 @@
%% API %% API
-export([new /3]). -export([new /3]).
-export([connection_pool_spec/1]). -export([child_spec/1]).
%% Thrift transport callbacks %% Thrift transport callbacks
-export([read/2, write/2, flush/1, close/1]). -export([read/2, write/2, flush/1, close/1]).
@ -47,9 +47,9 @@ new(Url, Opts, Context) ->
}), }),
Transport. Transport.
-spec connection_pool_spec(options()) -> -spec child_spec(options()) ->
supervisor:child_spec(). supervisor:child_spec().
connection_pool_spec(Options) -> child_spec(Options) ->
Name = proplists:get_value(pool, Options), Name = proplists:get_value(pool, Options),
hackney_pool:child_spec(Name, Options). hackney_pool:child_spec(Name, Options).

View File

@ -252,7 +252,7 @@ start_woody_server_with_pools(Id, Sup, Services, Params) ->
}), }),
{ok, WoodyServer} = supervisor:start_child(Sup, Server), {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], _ = [supervisor:start_child(WoodyServer, Spec) || Spec <- Specs],
ok. ok.