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
>

Reply via email to