From d6f0de5a35f4a383276d7712089b11e1778c1efa Mon Sep 17 00:00:00 2001 From: Anton Belyaev Date: Sat, 4 Mar 2017 14:37:17 +0400 Subject: [PATCH] MG-64: correct woody_client:child_spec name (#52) --- README.md | 8 ++++---- src/woody_client.erl | 12 ++++++------ src/woody_client_behaviour.erl | 12 ++++++------ src/woody_client_thrift.erl | 10 +++++----- src/woody_client_thrift_http_transport.erl | 6 +++--- test/woody_tests_SUITE.erl | 2 +- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 8ed7268..9d2c865 100644 --- a/README.md +++ b/README.md @@ -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)). diff --git a/src/woody_client.erl b/src/woody_client.erl index af4a7e6..abc76ae 100644 --- a/src/woody_client.erl +++ b/src/woody_client.erl @@ -6,9 +6,9 @@ -include("woody_defs.hrl"). %% API --export([connection_pool_spec/1]). --export([call /2]). --export([call /3]). +-export([child_spec/1]). +-export([call /2]). +-export([call /3]). %% Types -type options() :: #{ @@ -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()} | diff --git a/src/woody_client_behaviour.erl b/src/woody_client_behaviour.erl index 3ee1dd0..0b5605a 100644 --- a/src/woody_client_behaviour.erl +++ b/src/woody_client_behaviour.erl @@ -1,17 +1,17 @@ -module(woody_client_behaviour). --export([connection_pool_spec/1]). --export([call /3]). +-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(). diff --git a/src/woody_client_thrift.erl b/src/woody_client_thrift.erl index 5d43f29..2ca8514 100644 --- a/src/woody_client_thrift.erl +++ b/src/woody_client_thrift.erl @@ -6,8 +6,8 @@ -include("woody_defs.hrl"). %% woody_client_behaviour callback --export([call /3]). --export([connection_pool_spec/1]). +-export([call /3]). +-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(). diff --git a/src/woody_client_thrift_http_transport.erl b/src/woody_client_thrift_http_transport.erl index f99387e..f1a5d68 100644 --- a/src/woody_client_thrift_http_transport.erl +++ b/src/woody_client_thrift_http_transport.erl @@ -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). diff --git a/test/woody_tests_SUITE.erl b/test/woody_tests_SUITE.erl index babeda4..0fb0890 100644 --- a/test/woody_tests_SUITE.erl +++ b/test/woody_tests_SUITE.erl @@ -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.