gpt4 book ai didi

java - 使用 JMS 通过 SQS 自定义 nack 接收超时

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:04 25 4
gpt4 key购买 nike

否定确认的行为是将接收到的消息的可见性超时更改为 0。在为 JMS 创建 SQS Factory 时,NACK_TIMEOUT 的值不可配置。

https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/acknowledge/NegativeAcknowledger.java#L99

当接收到消息并且处理失败(Listener 方法抛出错误)时,会立即再次接收该消息。在大多数情况下,消息的处理可以有一定的延迟。

是否可以将其配置为不更改可见性超时,以便它遵循队列的默认接收超时配置?

最佳答案

显然有一种方法,有点笨拙,但我没有找到更好的解决方法,想法是当您创建客户端时,您可以附加自己的请求处理程序:

    return AmazonSQSAsyncClientBuilder.standard()
.withRequestHandlers(new RequestHandler2() {
@Override
public AmazonWebServiceRequest beforeExecution(AmazonWebServiceRequest request) {
if (request instanceof ChangeMessageVisibilityBatchRequest) {
((ChangeMessageVisibilityBatchRequest) request).getEntries().forEach(changeMessageVisibilityBatchRequestEntry -> {
changeMessageVisibilityBatchRequestEntry.setVisibilityTimeout(15);
});
log.debug("Changed visibility timeout for request {}", request);
}
return request;
}
})
;

关于java - 使用 JMS 通过 SQS 自定义 nack 接收超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54460735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com