0

我有一个 SQS 队列。我希望实现的目标是根据消息属性过滤消息,如果它与过滤条件匹配,则将其删除。所以我在Java中有一个看起来像这样的函数

public String getUri(){
    String uri = String.format("aws-sqs://%s?accessKey=%s&secretKey=%s&attributeNames=test&deleteIfFiltered=true",queueUrl,key,secret)
    return uri;
}

发布这个我正在调用这个函数

public Builder extends RouteBuilder{

    @Override
    public void configure(){
        try{
            from(getUri())
            .setHeader()
            ...
        }

    }

看起来正在构建的路线无法删除该消息。

4

1 回答 1

1

您需要按照文档中的说明进行操作:https ://camel.apache.org/components/latest/aws2-sqs-component.html

关于deleteIfFiltered选项。

您需要将交换属性(而不是标题)设置CamelAwsSqsDeleteFilteredtrue.

请参阅文档和此示例: https ://camel.apache.org/components/latest/aws2-sqs-component.html#_jms_style_selectors

于 2021-06-12T10:38:50.330 回答