-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support async send msg can get sequenceId when throw exception #6824
Labels
type/feature
The PR added a new feature or issue requested a new feature
Comments
liudezhi2098
added
the
type/feature
The PR added a new feature or issue requested a new feature
label
Apr 26, 2020
codelipenghui
pushed a commit
that referenced
this issue
Apr 30, 2020
Master Issue: #6824 ## Motivation When sending messages asynchronously fails, an exception will be thrown, but it is not known which message is abnormal, and the user does not know which messages need to be retried。 ## Modifications This change can be supported on the client side, when throwing an exception need to set sequenceId org.apache.pulsar.client.api.PulsarClientException ```java public class PulsarClientException extends IOException { private long sequenceId = -1; public PulsarClientException(String msg, long sequenceId) { super(msg); this.sequenceId = sequenceId; } ``` Client examples ```java producer.newMessage().sequenceId(1).value(value.getBytes()) .sendAsync().thenAccept(msgId -> { System.out.println(msgId); }).exceptionally(ex -> { System.out.println( ((PulsarClientException)ex.getCause()).getSequenceId()); return null; }); ```
close via #6825 |
Huanli-Meng
pushed a commit
to Huanli-Meng/pulsar
that referenced
this issue
May 27, 2020
…#6825) Master Issue: apache#6824 ## Motivation When sending messages asynchronously fails, an exception will be thrown, but it is not known which message is abnormal, and the user does not know which messages need to be retried。 ## Modifications This change can be supported on the client side, when throwing an exception need to set sequenceId org.apache.pulsar.client.api.PulsarClientException ```java public class PulsarClientException extends IOException { private long sequenceId = -1; public PulsarClientException(String msg, long sequenceId) { super(msg); this.sequenceId = sequenceId; } ``` Client examples ```java producer.newMessage().sequenceId(1).value(value.getBytes()) .sendAsync().thenAccept(msgId -> { System.out.println(msgId); }).exceptionally(ex -> { System.out.println( ((PulsarClientException)ex.getCause()).getSequenceId()); return null; }); ```
huangdx0726
pushed a commit
to huangdx0726/pulsar
that referenced
this issue
Aug 24, 2020
…#6825) Master Issue: apache#6824 ## Motivation When sending messages asynchronously fails, an exception will be thrown, but it is not known which message is abnormal, and the user does not know which messages need to be retried。 ## Modifications This change can be supported on the client side, when throwing an exception need to set sequenceId org.apache.pulsar.client.api.PulsarClientException ```java public class PulsarClientException extends IOException { private long sequenceId = -1; public PulsarClientException(String msg, long sequenceId) { super(msg); this.sequenceId = sequenceId; } ``` Client examples ```java producer.newMessage().sequenceId(1).value(value.getBytes()) .sendAsync().thenAccept(msgId -> { System.out.println(msgId); }).exceptionally(ex -> { System.out.println( ((PulsarClientException)ex.getCause()).getSequenceId()); return null; }); ```
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Motivation
When sending messages asynchronously fails, an exception will be thrown, but it is not known which message is abnormal, and the user does not know which messages need to be retried。
Proposed changes
This change can be supported on the client side, when throwing an exception need to set sequenceId
org.apache.pulsar.client.api.PulsarClientException
The text was updated successfully, but these errors were encountered: