如何解决如何在春季启动时从 AWS sqs 检索数据时设置超时?
我有一个后端和一个运行在不同服务器上的 AI 部分。后端和 AI 之间的通信是通过 AWS SQS** 进行的。
- 我有一个名为
handleSQSMessage()
的方法,它异步运行以侦听 SQS 队列中的数据。 - 如果数据在队列中,它会自动检索并处理它。
现在我想实现 2 分钟的超时。如果在 2 分钟内没有收到数据,我想通知 前端 超时。
问题是我如何实现超时 - 因为 handleSQSMessage()
是一个 async 方法,它将始终在不同的线程上运行以侦听队列。
向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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。