【问题标题】:Is there a dequeue function for vert.x AMQP to clear the message?vert.x AMQP 是否有出列功能来清除消息?
【发布时间】:2019-04-17 07:23:36
【问题描述】:

从 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 -> {
                });
            }
        }
);

【问题讨论】:

  • 到目前为止你尝试过什么(代码)?这鼓励回答...
  • 我添加了代码,实际上我参考了这个链接vertx.io/docs/vertx-amqp-client/java,但只是卡住了消息没有出队。

标签: java amqp vert.x enqueue


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多