JAX-RS端点触发服务器端操作



我有一个轻量级Java应用程序,它通过Jersey/Grizzly公开了一个web服务。它非常简单,因为它只发送回JSON内容:

@GET
public Response status() {
    CacheControl cc = new CacheControl();
    cc.setMaxAge(CLIENT_EXPIRY);
    cc.setPrivate(true);
    ResponseBuilder builder = Response.ok(someJsonString, MediaType.APPLICATION_JSON);
    builder.cacheControl(cc);
    return builder.build();
}

我希望只在客户端请求此响应时执行服务器端操作,但不延迟响应本身。

这些其他方法不会影响响应,但会占用服务器资源,并花费大量时间。如果我只是将调用粘贴到响应构建的中间,那么最终用户的体验会变得不那么愉快。

在不延迟响应的情况下,监控端点活动并触发服务器端治疗的好方法是什么

启动一个新线程来完成这项工作,然后将响应返回给客户端。考虑使用线程拉取,而不是耗尽服务器的资源。这样,客户端将不会等待响应,并且任务将被执行。

最新更新