如何在SmallRye反应性消息/ MicroProfile的反应性消息中请求消息?

我有一个使用消息并检查一些内部条件的方法。如果验证失败,我想拒绝该消息并将其放回队列,以便稍后到达消费者。

我在Reactive Messaging for MicroProfileSmallRye Reactive Messaging中找不到用于发送否定确认并重新排队消息的特殊API。我所能做的就是使用Acknowledgment.Strategy.MANUAL而不是调用message.ack()。这样,消息将保留在队列中,但不会重新排队-使用者方法不会再收到此消息。我的代码:

    @Incoming("my-queue")
    @Acknowledgment(Acknowledgment.Strategy.MANUAL)
    public CompletionStage<Void> getMessage(Message<String> message) {

        if (!someCondition()) { 
            // validation fails. reject and requeue the message
            return CompletableFuture.completedFuture(null);
        } else {
            process(message.getPayload());
            return message.ack();
        }

    }

如何正确重新排队消息?

shanzei05215 回答:如何在SmallRye反应性消息/ MicroProfile的反应性消息中请求消息?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2678205.html

大家都在问