小编vij*_*jay的帖子

SQS 消息始终处于飞行状态

我有以下代码从 SQS 队列中检索消息。我正在使用 aAmazonSQSBufferedAsyncClient从队列中检索消息。SingleThreadedExecutor每 5 分钟调用一次固定延迟唤醒receiveMessage。队列中启用长轮询

@Service
public class AmazonQueueService
    implements QueueService<String> {

    @Autowired
    private AmazonSQSBufferedAsyncClient sqsAsyncClient;

    @Value("${aws.sqs.queueUrl}")
    private String queueUrl;

    @Override
    public List<Message<String>> receiveMessage() {
        ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);
        ReceiveMessageResult result = sqsAsyncClient.receiveMessage(receiveMessageRequest);

        LOG.debug("Size=" + result.getMessages().size());

        return Lists.transform(result.getMessages(), ......);
    }

    .....
}
Run Code Online (Sandbox Code Playgroud)

问题是当我检查 AWS 控制台时,该消息始终在传输中,但从未在应用程序中收到(大小始终打印为 0)。看起来AmazonSQSBufferedAsyncClient正在从队列中读取消息但没有在receiveMessage调用中返回。

有任何想法吗?

java amazon-sqs

5
推荐指数
1
解决办法
9967
查看次数

标签 统计

amazon-sqs ×1

java ×1