如何在 JAX-RS API 中添加超时



我有一个 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();
            });
        }
    }

球衣文件在这里

相关内容

  • 没有找到相关文章