首页 > 解决方案 > 独立于主执行流程运行后台进程

问题描述

我有一个休息 API,它将文件上传到 AWS 并向用户返回成功响应。我现在有一个要求,我应该将上传的数据的详细信息发布到另一个服务以进行报告。但这里的问题是,这种数据的发布应该独立完成,而不改变 API 的响应时间。

即上传完成后,我应该运行一个后台进程,将数据发布到另一个服务,同时成功响应应该立即返回给用户。

我已经完成了一些解决方案,并尝试了以下代码段:

if(uploadSuccess) { 
  response.setStatus(HttpsServletResponse.SC_OK);
  //Post data to reporter
  CompletableFuture.runAsync(() -> postUploadedData(fileName, 
  fileId));
}

使用这种方法,任务在后台运行,但 API 响应会一直保持到数据发布调用完成为止。

还有其他方法可以实现吗?

标签: javamultithreadingbackground-process

解决方案


推荐阅读