JAX-RS长时间运行的任务未返回接受

时间:2019-04-17 09:56:56

标签: java asynchronous jax-rs

由于某些原因,我的POST端点在预期时未返回接受状态。 端点会按预期触发服务,但最终不会发送任何响应,但最终会超时。

private static ExecutorService executorService = Executors.newFixedThreadPool( Integer.valueOf( numberOfThreads ) );

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/xxxxx")
public Response longProcess(final String req,
                           final @Context SecurityContext securityContext) {

    executorService.execute(new Runnable() {

        @Override
        public void run() {
            try {
                thymeNewDateRange.getDataForDateRange(thymeDate, null);
            } catch (Exception e) {
                logger.error(e);
            }
        }
    });

    return Response.accepted("ASD").build();

}

calculateData是一种可能需要花费半分钟到多个小时的时间的方法。 因此,能够发送回“已接受”的响应将非常有帮助。

我将以不同的方式处理.location,但是现在我需要了解为什么请求不返回任何内容给客户端?

0 个答案:

没有答案