java - 独立于主执行流程运行后台进程
问题描述
我有一个休息 API,它将文件上传到 AWS 并向用户返回成功响应。我现在有一个要求,我应该将上传的数据的详细信息发布到另一个服务以进行报告。但这里的问题是,这种数据的发布应该独立完成,而不改变 API 的响应时间。
即上传完成后,我应该运行一个后台进程,将数据发布到另一个服务,同时成功响应应该立即返回给用户。
我已经完成了一些解决方案,并尝试了以下代码段:
if(uploadSuccess) {
response.setStatus(HttpsServletResponse.SC_OK);
//Post data to reporter
CompletableFuture.runAsync(() -> postUploadedData(fileName,
fileId));
}
使用这种方法,任务在后台运行,但 API 响应会一直保持到数据发布调用完成为止。
还有其他方法可以实现吗?
解决方案
推荐阅读
- java - 如何使用Java Modulus找到两个数字的倍数
- git - GITHUB API v4 - 按问题数量排序存储库
- python - Pandas 和 DateTime TypeError:无法将 TimedeltaIndex 与浮点类型进行比较
- reactjs - 如何在调度程序中使用 material-ui 对话框?
- r - Shiny App 不会像我期望的那样增加变量
- javascript - 如何在客户端检测项目创建错误(应用程序制造商)
- javascript - 如何更改 javascript 中发出文本的大小和/或重量?
- php - 我怎样才能删除此错误(!)警告:mysqli_query():第 28 行 D:\wamp64\www\complete_blog_php\admin\includes\post_functions.php 中的空查询
- string - 合并两个非常大的文件,忽略第一句话
- c++ - 为什么我的朋友班不能访问私人会员?