Java 如何在spring boot中从AWS sqs检索数据时设置超时?
我有一个后端和一个AI部分在不同的服务器上运行。后端和ai之间的通信通过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
- 我有一个名为
的方法,它异步运行以侦听SQS队列中的数据handleSQSMessage()
- 如果数据在队列中,它会自动检索并处理它
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);
}
也许这会有帮助