独立于主要执行流程运行后台进程

时间:2018-10-25 08:42:45

标签: java multithreading background-process

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

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

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

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

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

还有其他方法可以实现这一目标吗?

0 个答案:

没有答案