Hi Congbo I think it is a goog idea.
Thanks Yubiao Yu On Mon, Nov 21, 2022 at 9:04 PM 丛搏 <congbobo...@gmail.com> wrote: > Hello, Pulsar community: > > Now client consumer `void redeliverUnacknowledgedMessages();` is an > async interface, but it doesn't have the return value. only > `writeAndFlush` the redeliver command then finishes. > > `ConsumerImpl`: > > https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java#L1907-L1909 > > `MultiTopicsConsumerImpl`: > > https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsConsumerImpl.java#L667-L677 > > in the shared subType, I think it doesn't need the response of the > `void redeliverUnacknowledgedMessages()`, and naming the > `redeliverUnacknowledgedMessages` is ok. > > but in failover and exclusive subType, if we don't get the response, > the user will receive the message from the `incomingQueue` then the > order of the message will be broken. If the > `redeliverUnacknowledgedMessages` timeout, we should try again. but > `redeliverUnacknowledgedMessages` doesn't throw any exception or > retry. and the `redeliverUnacknowledgedMessages` name is not accurate > for failover and exclusive subType. it is named `rewind` is more > suitable. > > So I suggest `redeliverUnacknowledgedMessages` be deprecated under > failover and exclusive subType and add a new similar async and sync > method called `rewind` for failover and exclusive subType. > > Please leave your comments or suggestions, thanks! > > Thanks, > bo >