問題タブ [spring-retry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - @EnableRetry に相当する Spring 再試行 XML
Spring に Java-Config を使用できないプロジェクトで作業する必要がありますが、XML-Config を使用する必要があります。今、Java-Config から @EnableRetry に相当する XML-Config を探しています。
この行を機能させたい。
java - ブール値フラグの春の再試行戦略
春の再試行機能を使用する予定で、例外ではなくブール値フラグで再試行したいと考えています。を使用するSimpleRetryPolicy
と、再試行は例外でのみ発生しているようです。それを微調整するか、代わりにブール値フラグをチェックできる別の再試行ポリシーを使用できますか?
ありがとう
spring-integration - ExceptionClassifierRetryPolicy による再試行との Spring 統合
int:request-handler-advice-chain
サービスアクティベーターと一緒に使用しています。正しく動作していますが、サービスアクティベーターによってスローされた例外に基づいて、異なる回数の再試行を許可するためorg.springframework.retry.policy.SimpleRetryPolicy
に使用したいと考えています。org.springframework.retry.policy.ExceptionClassifierRetryPolicy
私が抱えている問題は、例外ExceptionClassifierRetryPolicy
が
org.springframework.integration.MessageHandlingException
MessageHandlingException
で利用可能になったものから原因(つまり、私の例外)を取得するための最良のアプローチについてアドバイスできますExceptionClassifierRetryPolicy
か?
以下のArtemの提案による解決策:
MessagingException の場合に原因を返す SubclassClassifier のサブクラスを作成する
次に、新しい分類子と policyMap を使用する新しい ExceptionClassifierRetryPolicy サブクラス
現在、これは MessagingException での retying をサポートしていませんが、これは私たちのユース ケースでは問題ありません。それ以外の場合は完全に機能します。
java - Spring-Retry で例外固有のバックオフ ポリシーを指定する
一部のデータベース操作にSpring-Retryを使用しています。I では 3 回再試行しSQLRecoverableException
ます (これは、3 回失敗した場合に例外の原因が非一時的であると想定しています)、SQLTransientException
I では無期限に再試行します (プログラムはデータベースにアクセスしないと何もできないため、そうする方がよい場合もあります)。ユーザーがサーバーを再起動することを決定するまで再試行し続けます)、その他の例外では再試行しません。基本再試行が 100 ミリ秒、最大再試行が 30,000 ミリ秒の指数バックオフ ポリシーを使用しています。
理想的には、すべての に対して 100 ミリ秒の固定バックオフを使用しSQLRecoverableExceptions
、指数バックオフ ポリシーのみを に適用したいと考えていSQLTransientExceptions
ます。ネストされた再試行でこれを達成できますが、コードの複雑さが大幅に増加します。他にオプションがない場合、単純に指数バックオフをSQLRecoverableException
とSQLTransientException
例外の両方に適用することをお勧めします。
単一の再試行テンプレートを使用して、さまざまなバックオフ ポリシーをさまざまな例外に適用する方法はありますか?
rabbitmq - spring-amqp と rabbitmq を使用したバックオフによるノンブロッキング リトライの実装
spring amqp と Rabbit MQ を使用してバックオフ ポリシーで再試行を実装する良い方法を探していますが、要件はリスナーをブロックしないことです (したがって、他のメッセージを自由に処理できます)。ここで同様の質問/回答が見られますが、「バックオフ」の解決策は含まれていません。
RabbitMQ & Spring amqp は、コンシューマーをブロックせずに再試行します
私が持っている質問は次のとおりです。
デフォルトの spring-retry 実装は、再試行中にスレッドをブロックしますか? github での実装は、そうであることを示しています。
上記の仮定が当てはまる場合、これを行う唯一の方法は、再試行用に個別のキュー (DLQ?) を実装し、各メッセージに TTL を設定することです (バックオフ間隔でスレッドをブロックしたくないと仮定します)。
上記のアプローチ (DLQ または別のキュー) を使用する場合、再試行ごとに別のキューが必要ではないでしょうか? 再試行に 1 つのキューのみを使用する場合、同じキューには、最小再試行間隔から最大再試行間隔までの範囲の TTL を持つメッセージが含まれます。キューの先頭のメッセージに最大 TTL がある場合、その後ろのメッセージは最小 TTL がある場合でもピックアップされます。これは、Rabbit MQ TTL のドキュメント(こちらの警告を参照) によるものです。
ノンブロッキング バックオフ リトライ メカニズムを実装する別の方法はありますか?
@garyrussel のトラブルシューティングに役立つ構成情報を追加します。
キュー構成:
java - AmqpConnection の最大再試行回数を設定する方法
rabbitmq 接続の再試行を設定することは可能ですか? 可能であれば、それを行う方法は?
現在、アプリケーションから AMQP (RabbitMQ) に接続しています。rabbitmq がダウンしている場合、AmqpConnectionException がスローされ、接続を再確立するために 10 回再試行します。
この再試行回数を 3 回に減らしてから終了する方法。
CachingConnectionFactory を使用して rabbitmq サーバーに接続しています。
spring - Spring Batch RetryTemplate 予期しない再試行
チャンクでスキップ制限を定義すると、retrytemplate が作成されますFaultTolerantStepBuilder
。実際、私はこれを使いたくありませんRetryTemplate
。
ItemWriter
org.springframework.retry.support.RetryTemplate#handleRetryExhausted
私の ItemWriter の呼び出しに失敗した場合、この 2 番目の呼び出しをブロックする解決策はありません。再試行ポリシーを設定しても、この呼び出しには影響しません。
手伝っていただけませんか?この再試行をブロックする正しい方法が見つかりません。
}