diff --git a/apps/emqx/src/emqx_persistent_message.erl b/apps/emqx/src/emqx_persistent_message.erl index 2a852627d..c8ad490f8 100644 --- a/apps/emqx/src/emqx_persistent_message.erl +++ b/apps/emqx/src/emqx_persistent_message.erl @@ -58,7 +58,7 @@ storage_backend() -> %% `emqx_persistent_session_ds': -spec force_ds() -> boolean(). force_ds() -> - emqx_config:get([session_persistence, force_ds]). + emqx_config:get([session_persistence, force_persistence]). storage_backend(#{ builtin := #{enable := true, n_shards := NShards, replication_factor := ReplicationFactor} diff --git a/apps/emqx/src/emqx_persistent_session_ds.erl b/apps/emqx/src/emqx_persistent_session_ds.erl index 928115a52..420defb18 100644 --- a/apps/emqx/src/emqx_persistent_session_ds.erl +++ b/apps/emqx/src/emqx_persistent_session_ds.erl @@ -349,11 +349,11 @@ handle_timeout( Session = #{id := Id, inflight := Inflight0, receive_maximum := ReceiveMaximum} ) -> {Publishes, Inflight} = emqx_persistent_message_ds_replayer:poll(Id, Inflight0, ReceiveMaximum), - %% TODO: make these values configurable: + IdlePollInterval = emqx_config:get([session_persistence, idle_poll_interval]), Timeout = case Publishes of [] -> - 100; + IdlePollInterval; [_ | _] -> 0 end, diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index 8e401a442..2986950e7 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -1772,6 +1772,23 @@ fields("session_persistence") -> <<"builtin">> => #{} } } + )}, + {"idle_poll_interval", + sc( + duration(), + #{ + default => 100, + desc => ?DESC(session_ds_idle_poll_interval) + } + )}, + {"force_persistence", + sc( + boolean(), + #{ + default => false, + %% Only for testing, shall remain hidden + importance => ?IMPORTANCE_HIDDEN + } )} ]; fields("session_storage_backend") ->