From 6fedd0328f9165ad3215aafad5c25441cfe0925e Mon Sep 17 00:00:00 2001 From: firest Date: Thu, 29 Jun 2023 12:20:25 +0800 Subject: [PATCH] fix(retainer): Fix missing changes in configuration --- apps/emqx_retainer/src/emqx_retainer_schema.erl | 7 +++++-- apps/emqx_retainer/test/emqx_retainer_SUITE.erl | 15 +++++++++++++++ rel/config/examples/retainer.conf.example | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/apps/emqx_retainer/src/emqx_retainer_schema.erl b/apps/emqx_retainer/src/emqx_retainer_schema.erl index 4b1a651bc..7b1a9675e 100644 --- a/apps/emqx_retainer/src/emqx_retainer_schema.erl +++ b/apps/emqx_retainer/src/emqx_retainer_schema.erl @@ -191,14 +191,14 @@ check_duplicate(List) -> true -> ok end. -retainer_converter(#{<<"deliver_rate">> := <<"infinity">>} = Conf, _Opts) -> +retainer_converter(#{<<"delivery_rate">> := <<"infinity">>} = Conf, _Opts) -> Conf#{ <<"flow_control">> => #{ <<"batch_read_number">> => 0, <<"batch_deliver_number">> => 0 } }; -retainer_converter(#{<<"deliver_rate">> := RateStr} = Conf, _Opts) -> +retainer_converter(#{<<"delivery_rate">> := RateStr} = Conf, _Opts) -> {ok, RateNum} = emqx_limiter_schema:to_rate(RateStr), RawRate = erlang:floor(RateNum * 1000 / emqx_limiter_schema:default_period()), Control = #{ @@ -208,5 +208,8 @@ retainer_converter(#{<<"deliver_rate">> := RateStr} = Conf, _Opts) -> <<"batch_deliver_limiter">> => #{<<"client">> => #{<<"rate">> => RateStr}} }, Conf#{<<"flow_control">> => Control}; +retainer_converter(#{<<"deliver_rate">> := Delivery} = Conf, Opts) -> + Conf1 = maps:remove(<<"deliver_rate">>, Conf), + retainer_converter(Conf1#{<<"delivery_rate">> => Delivery}, Opts); retainer_converter(Conf, _Opts) -> Conf. diff --git a/apps/emqx_retainer/test/emqx_retainer_SUITE.erl b/apps/emqx_retainer/test/emqx_retainer_SUITE.erl index c925e925d..d51045cd8 100644 --- a/apps/emqx_retainer/test/emqx_retainer_SUITE.erl +++ b/apps/emqx_retainer/test/emqx_retainer_SUITE.erl @@ -758,6 +758,21 @@ t_compatibility_for_deliver_rate(_) -> } }, Parser(R2) + ), + + DeliveryInf = <<"retainer.delivery_rate = \"infinity\"">>, + ?assertMatch( + #{ + <<"retainer">> := + #{ + <<"flow_control">> := #{ + <<"batch_deliver_number">> := 0, + <<"batch_read_number">> := 0, + <<"batch_deliver_limiter">> := #{<<"rate">> := infinity} + } + } + }, + Parser(DeliveryInf) ). %%-------------------------------------------------------------------- diff --git a/rel/config/examples/retainer.conf.example b/rel/config/examples/retainer.conf.example index 51101c9c7..d33037938 100644 --- a/rel/config/examples/retainer.conf.example +++ b/rel/config/examples/retainer.conf.example @@ -15,7 +15,7 @@ retainer { stop_publish_clear_msg = false ## Maximum retained messages delivery rate per session - deliver_rate = "1000/s" + delivery_rate = "1000/s" ## Retained messages store backend backend {