クラス CommonDelegatingErrorHandler
java.lang.ObjectSE
org.springframework.kafka.listener.CommonDelegatingErrorHandler
- 実装されているすべてのインターフェース:
CommonErrorHandler,DeliveryAttemptAware
例外の種類に応じて、さまざまなエラーハンドラーに委譲するエラーハンドラー。デリゲートには互換性のあるプロパティが必要です(
isAckAfterHandle() など。CommonErrorHandler.deliveryAttemptHeader() はサポートされていません。常に false を返します。- 導入:
- 2.8
- 作成者:
- Gary Russell, Adrian Chlebosz, Antonin Arquey, Dan Blackney
コンストラクターの概要
コンストラクターコンストラクター説明CommonDelegatingErrorHandler(CommonErrorHandler defaultErrorHandler) 例外に一致するものがない場合に呼び出されるデフォルトのエラーハンドラーを使用してインスタンスを構築します。メソッドのサマリー
修飾子と型メソッド説明voidaddDelegate(ClassSE<? extends ThrowableSE> throwable, CommonErrorHandler handler) 現在のコレクションの最後にデリゲートを追加します。voidスレッド状態をクリアするオプションのメソッド。コンシューマースレッドが終了する直前に呼び出されます。voidhandleBatch(ExceptionSE thrownException, org.apache.kafka.clients.consumer.ConsumerRecords<?, ?> data, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, RunnableSE invokeListener) バッチリスナーの例外を処理します。booleanhandleOne(ExceptionSE thrownException, org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container) CommonErrorHandler.seeksAfterHandling()が false を返したときに、レコードリスナーの例外を処理します。voidhandleOtherException(ExceptionSE thrownException, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean batchListener) 利用可能なレコードがない状態で例外がスローされた場合に呼び出されます。voidhandleRemaining(ExceptionSE thrownException, ListSE<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container) CommonErrorHandler.seeksAfterHandling()が true を返したときに、レコードリスナーの例外を処理します。boolean処理されたエラーに対してオフセットをコミットする必要がある場合は true を返します(例外はスローされません)。booleanこのエラーハンドラーが失敗したレコードと残りのレコード(または失敗したレコードが回復した後の残りのレコードのみ)に対してシークを実行する場合は true を返します。voidsetAckAfterHandle(boolean ack) コンテナーがリカバリされたレコードのオフセットをコミットしないようにするには、false に設定します(エラーハンドラー自体が例外をスローしない場合)。voidsetCauseChainTraversing(boolean causeChainTraversing) ディープ例外の原因 チェーントラバースを有効にするフラグを設定します。voidsetErrorHandlers(MapSE<ClassSE<? extends ThrowableSE>, CommonErrorHandler> delegates) デリゲートエラーハンドラーを設定します。デリゲートが既知の順序で検索されるように、LinkedHashMapSE 引数をお勧めします。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.kafka.listener.CommonErrorHandler から継承されたメソッド
deliveryAttempt, deliveryAttemptHeader, handleBatchAndReturnRemaining, logger, onPartitionsAssigned
コンストラクターの詳細
CommonDelegatingErrorHandler
例外に一致するものがない場合に呼び出されるデフォルトのエラーハンドラーを使用してインスタンスを構築します。- パラメーター:
defaultErrorHandler- デフォルトのエラーハンドラー。
メソッドの詳細
setErrorHandlers
デリゲートエラーハンドラーを設定します。デリゲートが既知の順序で検索されるように、LinkedHashMapSE 引数をお勧めします。- パラメーター:
delegates- 代表団。- 例外:
IllegalArgumentExceptionSE- いずれかのデリゲートがデフォルトのエラーハンドラーと互換性がない場合
setCauseChainTraversing
public void setCauseChainTraversing(boolean causeChainTraversing) ディープ例外の原因 チェーントラバースを有効にするフラグを設定します。true の場合、BinaryExceptionClassifierによって分類された最初の例外のデリゲートが取得されます。- パラメーター:
causeChainTraversing- causeChainTraversing フラグ。- 導入:
- 2.8.8
seeksAfterHandling
public boolean seeksAfterHandling()インターフェースからコピーされた説明:CommonErrorHandlerこのエラーハンドラーが失敗したレコードと残りのレコード(または失敗したレコードが回復した後の残りのレコードのみ)に対してシークを実行する場合は true を返します。- 次で指定:
- インターフェース
CommonErrorHandlerのseeksAfterHandling - 戻り値:
- 次のポーリングでレコードをフェッチする必要がある場合は true。
clearThreadState
public void clearThreadState()インターフェースからコピーされた説明:CommonErrorHandlerスレッド状態をクリアするオプションのメソッド。コンシューマースレッドが終了する直前に呼び出されます。- 次で指定:
- インターフェース
CommonErrorHandlerのclearThreadState
isAckAfterHandle
public boolean isAckAfterHandle()インターフェースからコピーされた説明:CommonErrorHandler処理されたエラーに対してオフセットをコミットする必要がある場合は true を返します(例外はスローされません)。- 次で指定:
- インターフェース
CommonErrorHandlerのisAckAfterHandle - 戻り値:
- コミットする場合は true。
setAckAfterHandle
public void setAckAfterHandle(boolean ack) インターフェースからコピーされた説明:CommonErrorHandlerコンテナーがリカバリされたレコードのオフセットをコミットしないようにするには、false に設定します(エラーハンドラー自体が例外をスローしない場合)。- 次で指定:
- インターフェース
CommonErrorHandlerのsetAckAfterHandle - パラメーター:
ack- コミットしない場合は false。
addDelegate
現在のコレクションの最後にデリゲートを追加します。- パラメーター:
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) インターフェースからコピーされた説明:CommonErrorHandlerCommonErrorHandler.seeksAfterHandling()が true を返したときに、レコードリスナーの例外を処理します。失敗したレコードとポーリングの残りのすべてのレコードが渡されます。通常、エラーハンドラーがシークを実行して、残りのレコードが次のポーリングで再配信されるようにするときに使用されます。- 次で指定:
- インターフェース
CommonErrorHandlerのhandleRemaining - パラメーター:
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が提供されます。バッチ内のレコードを再処理する場合は、エラーハンドラーがシークを実行する必要があります。- 次で指定:
- インターフェース
CommonErrorHandlerのhandleBatch - パラメーター:
thrownException- 例外。data- コンシューマーの記録。consumer- コンシューマー。container- コンテナー。invokeListener- リスナーを再起動するためのコールバック。
handleOtherException
public void handleOtherException(ExceptionSE thrownException, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean batchListener) インターフェースからコピーされた説明:CommonErrorHandler利用可能なレコードがない状態で例外がスローされた場合に呼び出されます。コンシューマー投票が例外をスローした場合。- 次で指定:
- インターフェース
CommonErrorHandlerのhandleOtherException - パラメーター:
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) インターフェースからコピーされた説明:CommonErrorHandlerCommonErrorHandler.seeksAfterHandling()が false を返した場合のレコードリスナーの例外を処理します。これを使用して、失敗した単一のレコードのみを処理します。- 次で指定:
- インターフェース
CommonErrorHandlerのhandleOne - パラメーター:
thrownException- 例外。record- レコード。consumer- コンシューマー。container- コンテナー。- 戻り値:
- エラーが「処理」された場合は true、そうでない場合は false で、コンテナーはレコードをリスナーに再送信します。
- 関連事項: