public interface TimeoutHandler
デフォルトでは、ランタイムは HTTP 503 (Service unavailable)
エラーレスポンスステータスコードを使用して WebApplicationException
を生成します。カスタムタイムアウトハンドラーは、非同期レスポンスインスタンスの set
であり、カスタムタイムアウトイベントの解決を提供します。
一時停止タイムアウトイベントの場合、カスタムタイムアウトハンドラーは通常、次のいずれかのアクションを実行します。
custom response
または custom exception
を使用して中断された非同期レスポンスを再開します AsyncResponse
cancel(...)
メソッドの 1 つを呼び出して、レスポンスをキャンセルします。setting a new suspend time-out
によるレスポンスの一時停止期間を延長しますWebApplicationException
でレスポンスが再開されます。 次の例は、カスタム 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); } … }
修飾子と型 | メソッドと説明 |
---|---|
void | handleTimeout(AsyncResponse asyncResponse) 中断された非同期レスポンスがタイムアウトに近づいたときに呼び出されます。 |
void handleTimeout(AsyncResponse asyncResponse)
AsyncResponse
API ドキュメントを参照)。カスタムタイムアウトハンドラーは、次のいずれかを決定できます
resume(...)
メソッドの 1 つを使用して、中断されたレスポンスを再開します。cancel(...)
メソッドのいずれかを使用して中断されたレスポンスをキャンセルするか setting a new suspend time-out
によって一時停止期間を延長しますasyncResponse
- タイムアウトしている一時停止された非同期レスポンス。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.