feat(ds): Make session poll interval configurable

This commit is contained in:
ieQu1 2023-11-22 01:55:58 +01:00
parent 82e74d0201
commit 1ced8786fd
3 changed files with 20 additions and 3 deletions

View File

@ -58,7 +58,7 @@ storage_backend() ->
%% `emqx_persistent_session_ds': %% `emqx_persistent_session_ds':
-spec force_ds() -> boolean(). -spec force_ds() -> boolean().
force_ds() -> force_ds() ->
emqx_config:get([session_persistence, force_ds]). emqx_config:get([session_persistence, force_persistence]).
storage_backend(#{ storage_backend(#{
builtin := #{enable := true, n_shards := NShards, replication_factor := ReplicationFactor} builtin := #{enable := true, n_shards := NShards, replication_factor := ReplicationFactor}

View File

@ -349,11 +349,11 @@ handle_timeout(
Session = #{id := Id, inflight := Inflight0, receive_maximum := ReceiveMaximum} Session = #{id := Id, inflight := Inflight0, receive_maximum := ReceiveMaximum}
) -> ) ->
{Publishes, Inflight} = emqx_persistent_message_ds_replayer:poll(Id, Inflight0, 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 = Timeout =
case Publishes of case Publishes of
[] -> [] ->
100; IdlePollInterval;
[_ | _] -> [_ | _] ->
0 0
end, end,

View File

@ -1772,6 +1772,23 @@ fields("session_persistence") ->
<<"builtin">> => #{} <<"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") -> fields("session_storage_backend") ->