Java 如何在spring boot中从AWS sqs检索数据时设置超时?

Java 如何在spring boot中从AWS sqs检索数据时设置超时?,java,spring-boot,timeout,Java,Spring Boot,Timeout,我有一个后端和一个AI部分在不同的服务器上运行。后端和ai之间的通信通过AWS SQS** 我有一个名为handleSQSMessage()的方法,它异步运行以侦听SQS队列中的数据 如果数据在队列中,它会自动检索并处理它 现在我想实现2分钟的超时。如果在2分钟内没有收到数据,我想通知前端超时 问题是如何实现timout-ashandleSQSMessage()是一种异步方法,它将始终在不同的线程上运行以侦听队列 要将数据发送到SQS: private void sendToSQS(JSO

我有一个后端和一个AI部分在不同的服务器上运行。后端和ai之间的通信通过AWS SQS**

  • 我有一个名为
    handleSQSMessage()
    的方法,它异步运行以侦听SQS队列中的数据
  • 如果数据在队列中,它会自动检索并处理它
现在我想实现2分钟的超时。如果在2分钟内没有收到数据,我想通知前端超时

问题是如何实现timout-as
handleSQSMessage()
是一种异步方法,它将始终在不同的线程上运行以侦听队列

要将数据发送到SQS

 private void sendToSQS(JSONObject jsonObject) {
       
        awsService.sendToSQS(jsonObject);
    }
方法
gettingData
是一个
SQSListener
,它连续侦听队列并将数据发送到
handleMessageFromSQS
方法

@SqsListener(value = "${aws.sqs.test}",deletionPolicy = SqsMessageDeletionPolicy.NEVER)
    public void gettingData(Acknowledgment acknowledgment,String message) throws JsonParseException, JsonMappingException, IOException, ParseException {
        logger.info("Message received from sqs {}", message);

        try {
            acknowledgment.acknowledge().get();
        } catch (InterruptedException | ExecutionException e) {
            logger.error(e.getMessage());
        }
       
       downloadService.handleMessageFromSQS(message);


    }
也许这会有帮助