Java Rest服务-接受响应并背后处理请求

时间:2019-03-13 16:08:48

标签: java rest

我想编写一个Java rest服务来接受请求,立即以200或202响应并在后台处理请求。用户不必等待整个过程完成。请建议

我的休息控制器类

 @Override
  public Response generateReport(Request requst) {
     return service.generateReport(requst);
  }

服务类别:

@Override
@Async
public Response generateReport(Request requst) {
     generateReport(requst);
     return Response.ok().build();
  }


public void generateReport(Request requst) {
    <!-- login to process the request. it will take 15 mins to complete -->
  }

1 个答案:

答案 0 :(得分:0)

似乎您要处理异步请求,这就是我要做的。

在收到原始请求后,您可以创建一个新资源,并返回状态代码202(已接受)以及新资源的表示形式。

此资源的目的是让客户端跟踪异步任务的状态。设计该资源时,其表示应包括请求的当前状态以及相关信息,例如时间估计。

当客户端向任务资源提交GET请求时,请根据请求的当前状态执行以下操作之一:

仍然处理-返回响应代码200(OK)和带有 当前状态。 成功完成后-返回响应代码303(请参阅其他)和一个包含URI的Location标头 显示任务结果的资源。

在任务失败时-返回响应代码200(OK),其中包含任务资源的表示形式 资源创建失败。客户将需要阅读表示的正文以找到失败的原因。