fix(sessds): Stream scheduler must ignore fully replayed streams

This commit is contained in:
ieQu1 2024-01-31 00:20:54 +01:00
parent 9e0bea098e
commit e843d9fd91
1 changed files with 10 additions and 7 deletions

View File

@ -89,13 +89,16 @@ find_new_streams(S) ->
Comm2 = emqx_persistent_session_ds_state:get_seqno(?committed(?QOS_2), S),
shuffle(
emqx_persistent_session_ds_state:fold_streams(
fun(Key, Stream, Acc) ->
case is_fully_acked(Comm1, Comm2, Stream) of
true ->
[{Key, Stream} | Acc];
false ->
Acc
end
fun
(_Key, #srs{it_end = end_of_stream}, Acc) ->
Acc;
(Key, Stream, Acc) ->
case is_fully_acked(Comm1, Comm2, Stream) of
true ->
[{Key, Stream} | Acc];
false ->
Acc
end
end,
[],
S