クラス 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) 例外に一致するものがない場合に呼び出されるデフォルトのエラーハンドラーを使用してインスタンスを構築します。メソッドのサマリー
修飾子と型メソッド説明void
addDelegate
(ClassSE<? extends ThrowableSE> throwable, CommonErrorHandler handler) 現在のコレクションの最後にデリゲートを追加します。void
スレッド状態をクリアするオプションのメソッド。コンシューマースレッドが終了する直前に呼び出されます。void
handleBatch
(ExceptionSE thrownException, org.apache.kafka.clients.consumer.ConsumerRecords<?, ?> data, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, RunnableSE invokeListener) バッチリスナーの例外を処理します。boolean
handleOne
(ExceptionSE thrownException, org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container) CommonErrorHandler.seeksAfterHandling()
が false を返したときに、レコードリスナーの例外を処理します。void
handleOtherException
(ExceptionSE thrownException, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean batchListener) 利用可能なレコードがない状態で例外がスローされた場合に呼び出されます。void
handleRemaining
(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 を返します。void
setAckAfterHandle
(boolean ack) コンテナーがリカバリされたレコードのオフセットをコミットしないようにするには、false に設定します(エラーハンドラー自体が例外をスローしない場合)。void
setCauseChainTraversing
(boolean causeChainTraversing) ディープ例外の原因 チェーントラバースを有効にするフラグを設定します。void
setErrorHandlers
(MapSE<ClassSE<? extends ThrowableSE>, CommonErrorHandler> delegates) デリゲートエラーハンドラーを設定します。デリゲートが既知の順序で検索されるように、LinkedHashMap
SE 引数をお勧めします。クラス 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
デリゲートエラーハンドラーを設定します。デリゲートが既知の順序で検索されるように、LinkedHashMap
SE 引数をお勧めします。- パラメーター:
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) インターフェースからコピーされた説明:CommonErrorHandler
CommonErrorHandler.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) インターフェースからコピーされた説明:CommonErrorHandler
CommonErrorHandler.seeksAfterHandling()
が false を返した場合のレコードリスナーの例外を処理します。これを使用して、失敗した単一のレコードのみを処理します。- 次で指定:
- インターフェース
CommonErrorHandler
のhandleOne
- パラメーター:
thrownException
- 例外。record
- レコード。consumer
- コンシューマー。container
- コンテナー。- 戻り値:
- エラーが「処理」された場合は true、そうでない場合は false で、コンテナーはレコードをリスナーに再送信します。
- 関連事項: