public interface TimeoutHandler
By default, the runtime generates a WebApplicationException
with a HTTP 503
(Service unavailable) error response status code. A custom time-out handler
may be set on an
asynchronous response instance to provide custom time-out event resolution.
In case of a suspend time-out event, a custom time-out handler takes typically one of the following actions:
custom response or a custom exceptionAsyncResponse cancel(...)
methods.setting a new suspend time-outWebApplicationException containing the HTTP 503 status code.
Following example illustrates the use of a custom TimeoutHandler:
public class MyTimeoutHandler implements TimeoutHandler {
…
public void handleTimeout(AsyncResponse ar) {
if (keepSuspended) {
ar.setTimeout(10, SECONDS);
} else if (cancel) {
ar.cancel(retryPeriod);
} else {
ar.resume(defaultResponse);
}
}
…
}
@Path("/messages/next")
public class MessagingResource {
…
@GET
public void readMessage(@Suspended AsyncResponse ar) {
ar.setTimeoutHandler(new MyTimeoutHandler());
suspended.put(ar);
}
…
}
| Modifier and Type | Method | Description |
|---|---|---|
void |
handleTimeout(AsyncResponse asyncResponse) |
Invoked when the suspended asynchronous response is about to time out.
|
void handleTimeout(AsyncResponse asyncResponse)
AsyncResponse API documentation).
A custom time-out handler may decide to either
resume(...) methods,cancel(...) methods, orsetting a new suspend time-outasyncResponse - suspended asynchronous response that is timing out.Copyright (c) 2019 Eclipse Foundation. Licensed under Eclipse Foundation Specification License.