我正在准备从 Amazon SQS 监听的演示程序。下面是我的代码。
xml配置
<aws-messaging:annotation-driven-queue-listener amazon-sqs="sqsClient" max-number-of-messages="10" wait-time-out="20" visibility-timeout="100" />
用户服务监听器.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}
那么,如果有任何线索,出了什么问题?