Java EE:异步、设计原则与轻量级开发
1. 异步与响应式 JAX - RS
JAX - RS 支持异步行为,以避免在服务器端不必要地阻塞请求线程。即使 HTTP 连接正在等待响应,请求线程在处理服务器上的长时间运行进程时,仍有可能处理其他请求。请求线程由容器池化,且该池的大小是固定的。为避免不必要地占用请求线程,JAX - RS 异步资源方法会提交任务,在请求线程返回并可再次使用时执行这些任务。异步任务完成或超时后,HTTP 连接将恢复并响应。
以下是一个异步 JAX - RS 资源方法的示例:
@Path("users")
@Consumes(MediaType.APPLICATION_JSON)
public class UsersResource {
@Resource
ManagedExecutorService mes;
...
@POST
public CompletionStage<Response> createUserAsync(User user) {
return CompletableFuture.supplyAsync(() -> createUser(user), mes);
}
private Response createUser(User user) {
userStore.create(user);
return Response.accepted().build();
}
}
为使请求线程不被长时间占用,JAX -
超级会员免费看
订阅专栏 解锁全文
984

被折叠的 条评论
为什么被折叠?



