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':
-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}

View File

@ -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,

View File

@ -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") ->