我有一个 JAX-RS API 可以长时间工作,并且客户端通过 ajax 调用调用 API。客户端正在获取 503 状态 - 50 秒后服务不可用。
如何增加此超时值。我尝试增加 tomcat 中的连接超时(它正在托管 API)。我还尝试在 ajax 调用中添加超时,但这也不起作用。
您可以使用
Suspended
注释并创建一个TimeoutHandler
。
不确定是否需要使用此示例增加 tomcat 中的超时。
public class Resource {
private Executor executor = Executors.newSingleThreadExecutor();
@GET
public void asyncGet(@Suspended final AsyncResponse asyncResponse) {
asyncResponse.setTimeoutHandler(new TimeoutHandler() {
@Override
public void handleTimeout(AsyncResponse asyncResponse) {
asyncResponse.resume("Processing timeout.");
executor.shutdown();
}
});
asyncResponse.setTimeout(60, TimeUnit.SECONDS);
executor.submit(() -> {
String result = someService.expensiveOperation();
asyncResponse.resume(result);
executor.shutdown();
});
}
}
球衣文件在这里