gpt4 book ai didi

java - Spring Cloud AWS SQS监听器问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:20 27 4
gpt4 key购买 nike

我正在准备从 Amazon SQS 监听的演示程序。下面是我的代码。

xml配置

<aws-messaging:annotation-driven-queue-listener  amazon-sqs="sqsClient" max-number-of-messages="10" wait-time-out="20" visibility-timeout="100" />

UserServiceListenr.java

@Configuration
@EnableSqs
@Component
public class UserServiceListenr {
@SqsListener(value = "CMR", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void myQueueListener(Message message) throws Exception{
try {
System.out.println("Message Listen start");
System.out.println("Message part "+message);
}catch(Exception e){
System.out.println(" message Exception " + e);
}
}
}

我已在 SQS 队列上放置了 2 条消息。当我尝试使用此演示程序获取消息时,消息显示在我的 AWS 控制台中的 Messages_in_flight 列中。但消息未到达我的 sqsListener 方法,几分钟后消息显示在 AWS 控制台中的 Messages_available 列中。

下面是我运行程序时遇到的异常。

QueueMessageHandler:294 - 1 message handler methods found on class com.sophos.cmr.demo.UserServiceListenr: {public void com.sophos.cmr.demo.UserServiceListenr.myQueueListener(java.lang.String) throws java.lang.Exception=org.springframework.cloud.aws.messaging.listener.QueueMessageHandler$MappingInformation@5f0e9815}

如果有任何线索,那么到底出了什么问题?

最佳答案

当您看到该消息移至 Messages_in_flight 列时 - 这意味着该消息已被消费者拾取,但仍未收到此特定消息的成功处理确认。

所以原因可能是下一个:1) 处理来自SQS的消息时出现错误/异常2) Spring 无法找到合适的 ArgumentResolver 将收入消息从 SQS 转换到您的 bean。我看到您正在使用自定义 bean -“消息”

您可以查看documentation ,第 5.2.5 节

关于java - Spring Cloud AWS SQS监听器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41892860/

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