Skip to content
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

Closed
liudezhi2098 opened this issue Apr 26, 2020 · 1 comment
Closed

support async send msg can get sequenceId when throw exception #6824

liudezhi2098 opened this issue Apr 26, 2020 · 1 comment
Labels
type/feature The PR added a new feature or issue requested a new feature

Comments

@liudezhi2098
Copy link
Contributor

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

public class PulsarClientException extends IOException {
    private long sequenceId = -1;

    public PulsarClientException(String msg, long sequenceId) {
        super(msg);
        this.sequenceId = sequenceId;
    }
@liudezhi2098 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;
                });
```
@codelipenghui
Copy link
Contributor

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
Labels
type/feature The PR added a new feature or issue requested a new feature
Projects
None yet
Development

No branches or pull requests

3 participants