クラス ConditionalRejectingErrorHandler
java.lang.ObjectSE
org.springframework.amqp.rabbit.listener.ConditionalRejectingErrorHandler
- 実装されたすべてのインターフェース:
ErrorHandler
構成された拒否戦略によってメッセージが致命的であり、再キューイングされるべきではないと判断された場合に、条件付きで例外を
AmqpRejectAndDontRequeueException
にラップする ErrorHandler
。このようなメッセージは、ブローカーの構成に応じて、破棄されるか、Dead Letter Exchange に送信されます。 例外が MessageConversionException
、MessageConversionException
、MethodArgumentNotValidException
、MethodArgumentTypeMismatchException
、NoSuchMethodException
SE または ClassCastException
SE の原因を持つ ListenerExecutionFailedException
である場合、デフォルトの戦略はこれを行います。
cause
チェーン にすでに AmqpRejectAndDontRequeueException
が含まれている場合、例外はラップされません。
- 導入:
- 1.3.2
- 作成者:
- Gary Russell
ネストされたクラスのサマリー
フィールドサマリー
コンストラクターのサマリー
コンストラクター説明ConditionalRejectingErrorHandler
(FatalExceptionStrategy exceptionStrategy) 提供されたFatalExceptionStrategy
実装でハンドラーを作成します。メソッドのサマリー
修飾子と型メソッド説明protected boolean
原因 チェーン にAmqpRejectAndDontRequeueException
がすでに存在する場合は、true を返します。protected FatalExceptionStrategy
例外戦略を返します。protected void
handleDiscarded
(Message failed) メッセージを破棄する前に、致命的な例外を含むメッセージにx-death
ヘッダーがある場合に呼び出されます。void
protected boolean
DiscardFatalsWithXDeath を返します。protected boolean
rejectManual を返します。protected void
log
(ThrowableSE t) スタックトレースを含む、WARN レベルでスロー可能オブジェクトをログに記録します。void
setDiscardFatalsWithXDeath
(boolean discardFatalsWithXDeath) 致命的な例外を引き起こし、`x-death` ヘッダーを持つメッセージをログに記録して破棄する (現在の) デフォルトの動作を無効にするには、false に設定します。これは通常、以前に DLQ に送信された後にメッセージが再発行されたことを意味します。void
setRejectManual
(boolean rejectManual) MANUAL ack モードが使用されているときに致命的なメッセージを拒否しないようにするには、false に設定します。
フィールドの詳細
logger
コンストラクターの詳細
ConditionalRejectingErrorHandler
public ConditionalRejectingErrorHandler()ConditionalRejectingErrorHandler
提供されたFatalExceptionStrategy
実装でハンドラーを作成します。- パラメーター:
exceptionStrategy
- 戦略の実装。
メソッドの詳細
isDiscardFatalsWithXDeath
protected boolean isDiscardFatalsWithXDeath()DiscardFatalsWithXDeath を返します。- 戻り値:
- DiscardFatalsWithXDeath。
- 導入:
- 2.3
- 関連事項:
setDiscardFatalsWithXDeath
public void setDiscardFatalsWithXDeath(boolean discardFatalsWithXDeath) 致命的な例外を引き起こし、`x-death` ヘッダーを持つメッセージをログに記録して破棄する (現在の) デフォルトの動作を無効にするには、false に設定します。これは通常、以前に DLQ に送信された後にメッセージが再発行されたことを意味します。- パラメーター:
discardFatalsWithXDeath
- 無効にする場合は false。- 導入:
- 2.1
isRejectManual
protected boolean isRejectManual()rejectManual を返します。- 戻り値:
- リジェクトマニュアル。
- 導入:
- 2.3
- 関連事項:
setRejectManual
public void setRejectManual(boolean rejectManual) MANUAL ack モードが使用されているときに致命的なメッセージを拒否しないようにするには、false に設定します。- パラメーター:
rejectManual
- メッセージを未確認の状態のままにする場合は false。- 導入:
- 2.1.9
getExceptionStrategy
例外戦略を返します。- 戻り値:
- 戦略。
- 導入:
- 2.3
handleError
- 次で指定:
- インターフェース
ErrorHandler
のhandleError
handleDiscarded
メッセージを破棄する前に、致命的な例外を含むメッセージにx-death
ヘッダーがある場合に呼び出されます。サブクラスは、このメソッドをオーバーライドして、メッセージをパーキングキューに送信するなどのアクションを実行できます。- パラメーター:
failed
- 失敗したメッセージ。- 導入:
- 2.3
log
スタックトレースを含む、WARN レベルでスロー可能オブジェクトをログに記録します。サブクラスは、この動作をオーバーライドできます。- パラメーター:
t
-Throwable
SE- 導入:
- 1.7.8
causeChainContainsARADRE
原因 チェーン にAmqpRejectAndDontRequeueException
がすでに存在する場合は、true を返します。- パラメーター:
t
-Throwable
SE。- 戻り値:
- 原因 チェーン にすでに
AmqpRejectAndDontRequeueException
が含まれている場合は true。 - 導入:
- 1.7.8