0

从 AmqpReceiver,我可以打印出入队消息,但是如何从队列中出列或清除消息?

amqpClient.createReceiver("my-queue",
        done -> {
            if (done.failed()) {
                done.cause().printStackTrace();
                System.out.println("Unable to create receiver");
            } else {
                final AmqpReceiver receiver = done.result();
                receiver.address();
                receiver
                        .exceptionHandler(t -> {
                            t.printStackTrace();
                        })
                        .handler(msg -> {
                            System.out.println("Message: " + msg.bodyAsJsonObject().toString());
                        });

                receiver.connection().close(ar -> {
                });
            }
        }
);
4

1 回答 1

0

默认情况下,接收者将接受并解决消息,因此您(如docs中所示)不需要做任何事情,除非您更改了配置以使其不接受并为您解决。如果您想要不同的处置或想要控制结算,那么您可以通过调用您收到的交货中的方法来实现。

此处的 vertx-proton 示例代码中有一些更详细的解释。

于 2019-04-17T13:57:35.937 回答