wip(sessds): handle recoverable errors in stream scheduler
This commit is contained in:
parent
c6085a6ab0
commit
393a1b1391
|
@ -569,7 +569,7 @@ replay_streams(Session0 = #{replay := [{_StreamKey, Srs0} | Rest]}, ClientInfo)
|
|||
RetryTimeout = ?TIMEOUT_RETRY_REPLAY,
|
||||
?SLOG(warning, #{
|
||||
msg => "failed_to_fetch_replay_batch",
|
||||
stream => Srs0,
|
||||
iterator => Srs0#srs.it_end,
|
||||
reason => Reason,
|
||||
class => recoverable,
|
||||
retry_in_ms => RetryTimeout
|
||||
|
|
|
@ -208,9 +208,8 @@ ensure_iterator(TopicFilter, StartTime, SubId, {{RankX, RankY}, Stream}, S) ->
|
|||
?SLOG(debug, #{
|
||||
msg => new_stream, key => Key, stream => Stream
|
||||
}),
|
||||
{ok, Iterator} = emqx_ds:make_iterator(
|
||||
?PERSISTENT_MESSAGE_DB, Stream, TopicFilter, StartTime
|
||||
),
|
||||
case emqx_ds:make_iterator(?PERSISTENT_MESSAGE_DB, Stream, TopicFilter, StartTime) of
|
||||
{ok, Iterator} ->
|
||||
NewStreamState = #srs{
|
||||
rank_x = RankX,
|
||||
rank_y = RankY,
|
||||
|
@ -218,6 +217,15 @@ ensure_iterator(TopicFilter, StartTime, SubId, {{RankX, RankY}, Stream}, S) ->
|
|||
it_end = Iterator
|
||||
},
|
||||
emqx_persistent_session_ds_state:put_stream(Key, NewStreamState, S);
|
||||
{error, recoverable, Reason} ->
|
||||
?SLOG(warning, #{
|
||||
msg => "failed_to_initialize_stream_iterator",
|
||||
stream => {Key, Stream},
|
||||
class => recoverable,
|
||||
reason => Reason
|
||||
}),
|
||||
S
|
||||
end;
|
||||
#srs{} ->
|
||||
S
|
||||
end.
|
||||
|
|
Loading…
Reference in New Issue