問題タブ [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 投票する
1 に答える
6155 参照

java - Spring Retry の @Retryable アノテーションが起動しない

デッドロックを引き起こすテーブルの更新があり、メソッドが何らかのロック例外を取得したときに Spring Retry を再試行しようとしています。maxAttempts、値、およびバックオフを取り出してみましたが、例外をキャッチしていないようです。何か不足していますか?アプリケーション ファイルで Bean を宣言する必要がありますか? どんな助けでも大歓迎です!

アプリケーション.Java

詳細サービス

編集

上記の DetailService を書き直して、詳細を提供し、不足しているメソッドを追加しました

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

spring - Spring Batch - 読み取るファイルがありません

ファイルを読み取ってデータベースに書き込む最初のステップを持つSpringバッチジョブがあります。ファイルが存在しない場合、システムに x 分間待機させてから、y 回までステップを再試行させます。これどうやってするの?

詳細

は次のItemReaderとおりです。

現在、fileが存在しない場合、次の例外がスローされ、ジョブは失敗します。

com.myorg.LoadApplication コードはバッチ アプリケーションを開始します。

アップデート

dimitrisliの回答を読んだ後、@Configurationクラスでこれを試しました(注:@EnableRetry構成クラスにも追加しました):

ItemStreamExceptionがスローされ、アプリケーションは再試行せずに終了します。再試行するにはどうすればよいですか?

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

java - @Retryable が Spring-boot-gradle-plugin で機能しない

を追加して、(Spring Boot gradle プラグイン) アプリケーションに再試行ロジックを追加しようとしています@Retryable

私がこれまでに行ったこと:

クラスパスに最新のスターター aop を追加しました:

クラスを再試行:

テストロジック:

しかし、再試行ロジックが機能していません。誰か提案はありますか?

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

spring-integration - Spring Integration with Java config を使用して SFTP 経由でファイルを毎日取得する方法は?

SFTP 経由で毎日ファイルを取得する必要があります。Java config で Spring Integration を使用したいと思います。ファイルは通常、毎日特定の時間に利用可能です。アプリケーションは、毎日その時刻近くにファイルを取得しようとする必要があります。ファイルが利用できない場合は、x回試行し続ける必要があります。x回試行した後、ファイルがまだSFTPサイトで利用できないことを管理者に知らせるメールを送信する必要があります。

1 つのオプションは、 を使用することSftpInboundFileSynchronizingMessageSourceです。でMessageHandler、ファイルを処理するジョブを開始できます。ただし、リモート ファイル システムとの同期は本当に必要ありません。所詮、ファイルの定期配信です。さらに、次の再試行まで最大 15 分遅らせる必要があり、15 分ごとにポーリングするのは、毎日のファイルには少しやり過ぎに思えます。これを使用できると思いますが、一定の時間が経過してファイルが受信されなかった後に電子メールを送信するためのメカニズムが必要になります。

もう 1 つのオプションgetは、SFTP アウトバウンド ゲートウェイを使用しているようです。しかし、私が見つけることができる唯一の例は、XML 構成のようです。

アップデート

以下の Artem Bilan の回答で提供されるヘルプを使用した後にコードを追加します。

構成クラス:

RetryCompoundTriggerAdvice クラス:

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

spring - メソッドに @Retryable アノテーションを持つ Mocked Spring @Service が UnfinishedVerificationException で失敗する

私はSpring Boot1.4.0.RELEASEを使用していますspring-boot-starter-batch.spring-boot-starter-aopspring-retry

@Service実行時にモックされる Spring Integration テストがあります。@Serviceクラスの@Retryableメソッドに注釈が含まれている場合、 と干渉しているように見えることに気付きましMockito.verify()UnfinishedVerificationException。これは何か関係があるに違いないと思いspring-aopますか?@Retryableのすべての注釈をコメントアウトすると、正常に@Service動作することを確認できます。

この問題を示すgithub プロジェクトを作成しました。

で失敗sample.batch.MockBatchTestWithRetryVerificationFailures.batchTest()するvalidateMockitoUsage();

次のようなもので:

ただし、注釈を持たないsample.batch.MockBatchTestWithNoRetryWorking.batchTest()モック付きの別のクラス ( ) があり、正常に動作することを確認します。@Service@Retryable

私は何を間違っていますか?

私の pom.xml には次のものがあります。

次に、関連するすべての Java クラス

編集:問題を示すためにまとめたサンプルプロジェクトに基づいて、質問とコードを更新しました。