我有一个轻量级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();
}
我希望只在客户端请求此响应时执行服务器端操作,但不延迟响应本身。
这些其他方法不会影响响应,但会占用服务器资源,并花费大量时间。如果我只是将调用粘贴到响应构建的中间,那么最终用户的体验会变得不那么愉快。
在不延迟响应的情况下,监控端点活动并触发服务器端治疗的好方法是什么
启动一个新线程来完成这项工作,然后将响应返回给客户端。考虑使用线程拉取,而不是耗尽服务器的资源。这样,客户端将不会等待响应,并且任务将被执行。