クラス CommonDelegatingErrorHandler

java.lang.ObjectSE
org.springframework.kafka.listener.CommonDelegatingErrorHandler
実装されたすべてのインターフェース:
CommonErrorHandlerDeliveryAttemptAware

public class CommonDelegatingErrorHandler extends ObjectSE implements CommonErrorHandler
例外の種類に応じて、さまざまなエラーハンドラーに委譲するエラーハンドラー。デリゲートには互換性のあるプロパティが必要です(isAckAfterHandle() など。CommonErrorHandler.deliveryAttemptHeader() はサポートされていません。常に false を返します。
導入:
2.8
作成者:
Gary Russell, Adrian Chlebosz, Antonin Arquey, Dan Blackney
  • コンストラクターの詳細

    • CommonDelegatingErrorHandler

      public CommonDelegatingErrorHandler(CommonErrorHandler defaultErrorHandler)
      例外に一致するものがない場合に呼び出されるデフォルトのエラーハンドラーを使用してインスタンスを構築します。
      パラメーター:
      defaultErrorHandler - デフォルトのエラーハンドラー。
  • メソッドの詳細

    • setErrorHandlers

      public void setErrorHandlers(MapSE<ClassSE<? extends ThrowableSE>,CommonErrorHandler> delegates)
      デリゲートエラーハンドラーを設定します。デリゲートが既知の順序で検索されるように、LinkedHashMapSE 引数をお勧めします。
      パラメーター:
      delegates - 代表団。
      例外:
      IllegalArgumentExceptionSE - いずれかのデリゲートがデフォルトのエラーハンドラーと互換性がない場合
    • setCauseChainTraversing

      public void setCauseChainTraversing(boolean causeChainTraversing)
      ディープ例外の原因 チェーントラバースを有効にするフラグを設定します。true の場合、BinaryExceptionClassifier によって分類された最初の例外のデリゲートが取得されます。
      パラメーター:
      causeChainTraversing - causeChainTraversing フラグ。
      導入:
      2.8.8
    • seeksAfterHandling

      public boolean seeksAfterHandling()
      インターフェースからコピーされた説明: CommonErrorHandler
      このエラーハンドラーが失敗したレコードと残りのレコード(または失敗したレコードが回復した後の残りのレコードのみ)に対してシークを実行する場合は true を返します。
      次で指定:
      インターフェース CommonErrorHandlerseeksAfterHandling 
      戻り値:
      次のポーリングでレコードをフェッチする必要がある場合は true。
    • clearThreadState

      public void clearThreadState()
      インターフェースからコピーされた説明: CommonErrorHandler
      スレッド状態をクリアするオプションのメソッド。コンシューマースレッドが終了する直前に呼び出されます。
      次で指定:
      インターフェース CommonErrorHandlerclearThreadState 
    • isAckAfterHandle

      public boolean isAckAfterHandle()
      インターフェースからコピーされた説明: CommonErrorHandler
      処理されたエラーに対してオフセットをコミットする必要がある場合は true を返します(例外はスローされません)。
      次で指定:
      インターフェース CommonErrorHandlerisAckAfterHandle 
      戻り値:
      コミットする場合は true。
    • setAckAfterHandle

      public void setAckAfterHandle(boolean ack)
      インターフェースからコピーされた説明: CommonErrorHandler
      コンテナーがリカバリされたレコードのオフセットをコミットしないようにするには、false に設定します(エラーハンドラー自体が例外をスローしない場合)。
      次で指定:
      インターフェース CommonErrorHandlersetAckAfterHandle 
      パラメーター:
      ack - コミットしない場合は false。
    • addDelegate

      public void addDelegate(ClassSE<? extends ThrowableSE> throwable, CommonErrorHandler handler)
      現在のコレクションの最後にデリゲートを追加します。
      パラメーター:
      throwable - このハンドラーのスロー可能。
      handler - ハンドラー。
      例外:
      IllegalArgumentExceptionSE - ハンドラーがデフォルトのエラーハンドラーと互換性がない場合。
    • handleRemaining

      public void handleRemaining(ExceptionSE thrownException, ListSE<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>> records, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, MessageListenerContainer container)
      インターフェースからコピーされた説明: CommonErrorHandler
      CommonErrorHandler.seeksAfterHandling() が true を返したときに、レコードリスナーの例外を処理します。失敗したレコードとポーリングの残りのすべてのレコードが渡されます。通常、エラーハンドラーがシークを実行して、残りのレコードが次のポーリングで再配信されるようにするときに使用されます。
      次で指定:
      インターフェース CommonErrorHandlerhandleRemaining 
      パラメーター:
      thrownException - 例外。
      records - 失敗したものを含む残りのレコード。
      consumer - コンシューマー。
      container - コンテナー。
      関連事項:
    • handleBatch

      public void handleBatch(ExceptionSE thrownException, org.apache.kafka.clients.consumer.ConsumerRecords<?,?> data, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, MessageListenerContainer container, RunnableSE invokeListener)
      インターフェースからコピーされた説明: CommonErrorHandler
      バッチリスナーの例外を処理します。ポーリングからの完全な ConsumerRecords が提供されます。バッチ内のレコードを再処理する場合は、エラーハンドラーがシークを実行する必要があります。
      次で指定:
      インターフェース CommonErrorHandlerhandleBatch 
      パラメーター:
      thrownException - 例外。
      data - コンシューマーの記録。
      consumer - コンシューマー。
      container - コンテナー。
      invokeListener - リスナーを再起動するためのコールバック。
    • handleOtherException

      public void handleOtherException(ExceptionSE thrownException, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, MessageListenerContainer container, boolean batchListener)
      インターフェースからコピーされた説明: CommonErrorHandler
      利用可能なレコードがない状態で例外がスローされた場合に呼び出されます。コンシューマー投票が例外をスローした場合。
      次で指定:
      インターフェース CommonErrorHandlerhandleOtherException 
      パラメーター:
      thrownException - 例外。
      consumer - コンシューマー。
      container - コンテナー。
      batchListener - リスナーがバッチリスナーの場合は true。
    • handleOne

      public boolean handleOne(ExceptionSE thrownException, org.apache.kafka.clients.consumer.ConsumerRecord<?,?> record, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, MessageListenerContainer container)
      インターフェースからコピーされた説明: CommonErrorHandler
      CommonErrorHandler.seeksAfterHandling() が false を返した場合のレコードリスナーの例外を処理します。これを使用して、失敗した単一のレコードのみを処理します。
      次で指定:
      インターフェース CommonErrorHandlerhandleOne 
      パラメーター:
      thrownException - 例外。
      record - レコード。
      consumer - コンシューマー。
      container - コンテナー。
      戻り値:
      エラーが「処理」された場合は true、そうでない場合は false で、コンテナーはレコードをリスナーに再送信します。
      関連事項: