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