Merge pull request #13080 from zmstone/0521-default-retry_interval-to-infinity
change `mqtt.retry_interval` default value to `infinity`
This commit is contained in:
commit
12fd1f6a48
|
@ -3630,9 +3630,9 @@ mqtt_general() ->
|
||||||
)},
|
)},
|
||||||
{"retry_interval",
|
{"retry_interval",
|
||||||
sc(
|
sc(
|
||||||
duration(),
|
hoconsc:union([infinity, duration()]),
|
||||||
#{
|
#{
|
||||||
default => <<"30s">>,
|
default => infinity,
|
||||||
desc => ?DESC(mqtt_retry_interval)
|
desc => ?DESC(mqtt_retry_interval)
|
||||||
}
|
}
|
||||||
)},
|
)},
|
||||||
|
|
|
@ -602,9 +602,9 @@ handle_timeout(ClientInfo, expire_awaiting_rel, Session) ->
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
-spec retry(clientinfo(), session()) ->
|
-spec retry(clientinfo(), session()) ->
|
||||||
{ok, replies(), session()}.
|
{ok, replies(), session()} | {ok, replies(), timeout(), session()}.
|
||||||
retry(ClientInfo, Session = #session{inflight = Inflight}) ->
|
retry(ClientInfo, Session = #session{inflight = Inflight, retry_interval = Interval}) ->
|
||||||
case emqx_inflight:is_empty(Inflight) of
|
case emqx_inflight:is_empty(Inflight) orelse Interval =:= infinity of
|
||||||
true ->
|
true ->
|
||||||
{ok, [], Session};
|
{ok, [], Session};
|
||||||
false ->
|
false ->
|
||||||
|
|
|
@ -444,7 +444,7 @@ zone_global_defaults() ->
|
||||||
peer_cert_as_username => disabled,
|
peer_cert_as_username => disabled,
|
||||||
response_information => [],
|
response_information => [],
|
||||||
retain_available => true,
|
retain_available => true,
|
||||||
retry_interval => 30000,
|
retry_interval => infinity,
|
||||||
message_expiry_interval => infinity,
|
message_expiry_interval => infinity,
|
||||||
server_keepalive => disabled,
|
server_keepalive => disabled,
|
||||||
session_expiry_interval => 7200000,
|
session_expiry_interval => 7200000,
|
||||||
|
|
|
@ -78,7 +78,7 @@ t_session_init(_) ->
|
||||||
?assertEqual(0, emqx_session_mem:info(inflight_cnt, Session)),
|
?assertEqual(0, emqx_session_mem:info(inflight_cnt, Session)),
|
||||||
?assertEqual(64, emqx_session_mem:info(inflight_max, Session)),
|
?assertEqual(64, emqx_session_mem:info(inflight_max, Session)),
|
||||||
?assertEqual(1, emqx_session_mem:info(next_pkt_id, Session)),
|
?assertEqual(1, emqx_session_mem:info(next_pkt_id, Session)),
|
||||||
?assertEqual(30000, emqx_session_mem:info(retry_interval, Session)),
|
?assertEqual(infinity, emqx_session_mem:info(retry_interval, Session)),
|
||||||
?assertEqual(0, emqx_mqueue:len(emqx_session_mem:info(mqueue, Session))),
|
?assertEqual(0, emqx_mqueue:len(emqx_session_mem:info(mqueue, Session))),
|
||||||
?assertEqual(0, emqx_session_mem:info(awaiting_rel_cnt, Session)),
|
?assertEqual(0, emqx_session_mem:info(awaiting_rel_cnt, Session)),
|
||||||
?assertEqual(100, emqx_session_mem:info(awaiting_rel_max, Session)),
|
?assertEqual(100, emqx_session_mem:info(awaiting_rel_max, Session)),
|
||||||
|
@ -95,7 +95,7 @@ t_session_info(_) ->
|
||||||
#{
|
#{
|
||||||
subscriptions := #{},
|
subscriptions := #{},
|
||||||
upgrade_qos := false,
|
upgrade_qos := false,
|
||||||
retry_interval := 30000,
|
retry_interval := infinity,
|
||||||
await_rel_timeout := 300000
|
await_rel_timeout := 300000
|
||||||
},
|
},
|
||||||
maps:from_list(emqx_session_mem:info(Keys, session()))
|
maps:from_list(emqx_session_mem:info(Keys, session()))
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
Change `mqtt.retry_interval` config default to `infinity`.
|
||||||
|
|
||||||
|
Previously, the default value for `retry_interval` was 30 seconds.
|
||||||
|
|
||||||
|
The new default has been changed to 'infinity'. With this update, EMQX will not automatically retry message deliveries by default.
|
||||||
|
|
||||||
|
Aligning with MQTT specification standards, in-session message delivery retries are not typically compliant.
|
||||||
|
We recognize that some users depend on this feature, so the option to configure retries remains available for backward compatibility.
|
Loading…
Reference in New Issue