如何定期发送HTTP状态码102通过Grizzly处理响应

时间:2016-08-25 19:55:25

标签: java http asynchronous grizzly

我有一个在Grizzly Web服务器上运行的Java应用程序。我已经调用if ((i % 3) === 0 && (i % 5) === 0) { console.log("FizzBuzz"); } 并在后台线程中运行请求。这很有用。这是一些示例代码。

Response.suspend()

对于一种请求,处理可能需要一段时间。我想定期将HTTP状态代码import org.glassfish.grizzly.http.server.Request; import org.glassfish.grizzly.http.server.Response; class Handler extends org.glassfish.grizzly.http.server.HttpHandler { @Override public void service(Request request, Response response) { response.suspend(); // Execute the request in a background thread } private static void execute(Request request, Response response) { // Process the request response.setStatus(200); // Populate the response headers and body response.resume(); } } 发送回客户端,以便客户端不会超时。我该怎么做呢?我意识到我可能必须运行定期计划任务才能发送102 Processing。这不是问题。如何与102 Processing对象进行交互?

我正在处理请求时尝试以下操作。这会将102 HTTP状态代码发送回客户端。但是,当实际响应准备好发送给客户端时,会抛出Response,因为IllegalStateException为真。

Response.isCommitted()

0 个答案:

没有答案