問題タブ [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.

0 投票する
2 に答える
6858 参照

java - @EnableRetry に相当する Spring 再試行 XML

Spring に Java-Config を使用できないプロジェクトで作業する必要がありますが、XML-Config を使用する必要があります。今、Java-Config から @EnableRetry に相当する XML-Config を探しています。

この行を機能させたい。

0 投票する
1 に答える
980 参照

java - ブール値フラグの春の再試行戦略

春の再試行機能を使用する予定で、例外ではなくブール値フラグで再試行したいと考えています。を使用するSimpleRetryPolicyと、再試行は例外でのみ発生しているようです。それを微調整するか、代わりにブール値フラグをチェックできる別の再試行ポリシーを使用できますか?

ありがとう

0 投票する
1 に答える
2218 参照

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 をサポートしていませんが、これは私たちのユース ケースでは問題ありません。それ以外の場合は完全に機能します。

0 投票する
3 に答える
13362 参照

java - Spring-Retry で例外固有のバックオフ ポリシーを指定する

一部のデータベース操作にSpring-Retryを使用しています。I では 3 回再試行しSQLRecoverableExceptionます (これは、3 回失敗した場合に例外の原因が非一時的であると想定しています)、SQLTransientExceptionI では無期限に再試行します (プログラムはデータベースにアクセスしないと何もできないため、そうする方がよい場合もあります)。ユーザーがサーバーを再起動することを決定するまで再試行し続けます)、その他の例外では再試行しません。基本再試行が 100 ミリ秒、最大再試行が 30,000 ミリ秒の指数バックオフ ポリシーを使用しています。

理想的には、すべての に対して 100 ミリ秒の固定バックオフを使用しSQLRecoverableExceptions、指数バックオフ ポリシーのみを に適用したいと考えていSQLTransientExceptionsます。ネストされた再試行でこれを達成できますが、コードの複雑さが大幅に増加します。他にオプションがない場合、単純に指数バックオフをSQLRecoverableExceptionSQLTransientException例外の両方に適用することをお勧めします。

単一の再試行テンプレートを使用して、さまざまなバックオフ ポリシーをさまざまな例外に適用する方法はありますか?

0 投票する
3 に答える
3821 参照

rabbitmq - spring-amqp と rabbitmq を使用したバックオフによるノンブロッキング リトライの実装

spring amqp と Rabbit MQ を使用してバックオフ ポリシーで再試行を実装する良い方法を探していますが、要件はリスナーをブロックしないことです (したがって、他のメッセージを自由に処理できます)。ここで同様の質問/回答が見られますが、「バックオフ」の解決策は含まれていません。

RabbitMQ & Spring amqp は、コンシューマーをブロックせずに再試行します

私が持っている質問は次のとおりです。

  1. デフォルトの spring-retry 実装は、再試行中にスレッドをブロックしますか? github での実装は、そうであることを示しています。

  2. 上記の仮定が当てはまる場合、これを行う唯一の方法は、再試行用に個別のキュー (DLQ?) を実装し、各メッセージに TTL を設定することです (バックオフ間隔でスレッドをブロックしたくないと仮定します)。

  3. 上記のアプローチ (DLQ または別のキュー) を使用する場合、再試行ごとに別のキューが必要ではないでしょうか? 再試行に 1 つのキューのみを使用する場合、同じキューには、最小再試行間隔から最大再試行間隔までの範囲の TTL を持つメッセージが含まれます。キューの先頭のメッセージに最大 TTL がある場合、その後ろのメッセージは最小 TTL がある場合でもピックアップされます。これは、Rabbit MQ TTL のドキュメント(こちらの警告を参照) によるものです。

  4. ノンブロッキング バックオフ リトライ メカニズムを実装する別の方法はありますか?

@garyrussel のトラブルシューティングに役立つ構成情報を追加します。

キュー構成:

0 投票する
1 に答える
747 参照

java - AmqpConnection の最大再試行回数を設定する方法

rabbitmq 接続の再試行を設定することは可能ですか? 可能であれば、それを行う方法は?

現在、アプリケーションから AMQP (RabbitMQ) に接続しています。rabbitmq がダウンしている場合、AmqpConnectionException がスローされ、接続を再確立するために 10 回再試行します。

この再試行回数を 3 回に減らしてから終了する方法。

CachingConnectionFactory を使用して rabbitmq サーバーに接続しています。

0 投票する
0 に答える
656 参照

spring - Spring Batch RetryTemplate 予期しない再試行

チャンクでスキップ制限を定義すると、retrytemplate が作成されますFaultTolerantStepBuilder。実際、私はこれを使いたくありませんRetryTemplate

ItemWriter org.springframework.retry.support.RetryTemplate#handleRetryExhausted私の ItemWriter の呼び出しに失敗した場合、この 2 番目の呼び出しをブロックする解決策はありません。再試行ポリシーを設定しても、この呼び出しには影響しません。

手伝っていただけませんか?この再試行をブロックする正しい方法が見つかりません。

}