問題タブ [spring-async]

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 に答える
1613 参照

java - Spring-boot @Async が @Scheduled で実行されていない

このチュートリアルを使用しました。これは、この SSCCE のベースとしてgithub プロジェクトです。

理由は不明ですが、メソッド@Asyncから実行されたとマークされた@Scheduledメソッドは常に同期的に実行されます。

コードを非同期で実行するための修正または回避策を探していますperformTask()

以下のクラス:

アプリケーション.java

MyAsyncService.java

ScheduledTasks.java

次の同期結果を生成します。

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

java - Spring Async: Async メソッド内で春の hatoas ControllerLinkBuilder を呼び出す方法

Spring Async メソッド内で ControllerLinkBuilder.linkTo メソッドを呼び出していますが、現在のリクエストを見つけることができません。

例外:

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

java - 非同期およびトランザクション メソッド

ファイルからデータベースにインポートする Web アプリケーションがあります。このメソッドは非同期でトランザクション対応で、オブジェクトの読み取りと挿入を行います。問題は、インポート方法に 5 ~ 6 分かかることです。トランザクションを閉じずに import メソッドを 2 回スローすると、2 番目のメソッドは挿入の ID を繰り返し取得します。最初の実行は問題なく実行されますが、コミットすると 2 番目の実行は失敗します。これは私のコードです:

どうすればこれを修正できますか? 非同期メソッドをテールで管理する方法はありますか? 別のメソッドが終了するまで開始されないメソッドの場合。

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

spring - Spring の Future を使用するおよび非同期アノテーション

Spring の非同期呼び出しの使用方法に関するこのページを読んでいました: https://spring.io/guides/gs/async-method/

これにより、いくつかの設計上の問題が生じます。

1) 非同期機能を抽象化の背後に隠していますか、それとも直接使用していますか?

2) 上記のリンクの例では、各非同期呼び出しが返されたかどうかを 10 ミリ秒ごとにチェックする「while ループ」がコードに含まれていました。これを実装する他の方法はありますか?その後、進行中の「while」ループはありますか? :)あまり効率的ではありません...

ありがとう!

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

java - Spring Retry を AsyncRestTemplate と統合する方法

Spring Retryで外部呼び出しとどのように統合できますAsyncRestTemplateか? それが不可能な場合、それをサポートする別のフレームワークはありますか?

私のユースケース:

future.get()この呼び出しを再試行するにはどうすればよいですか? 外部サービスが 404 を返した場合、その間にそれらのタスクを再び呼び出さないようにして、外部呼び出しを再試行したいですか? 実際には外部サービスへの別の呼び出しを行わないため、 aでラップfuture.get()することはできません。retryTemplate.execute()

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

spring-mvc - Spring MVC: エンコードされた URL を持つ DeferredResult: 無効なエンコードされたシーケンス

DefferedResultでSpring MVC 4.1.6を使用しています。順調です。しかし、エンコードされた URL を使用してリクエストした場合、エラーが発生しました。

コントローラ

リクエスト

エラー

この問題は、一部の結果がDefferedResultに設定された後の URL のデコードに関する問題ですが、HttpServletRequest.getRequestURI()は既に UTF-8 からデコードされています。修正方法は?

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

spring - 実行時間の長いタスクを使用した spring MVC DeferredResult の例

春の DeferredResult を使用して長時間実行されるトランザクションタスクを実行する方法を教えてもらえますか? ネットで利用可能な多くのチュートリアルを経験しましたが、Restベース以外のアプリケーションではドキュメントも例も明確ではありません。これは長いポーリングを必要としませんが、バックグラウンドでタスクを実行し、すぐにHTTP応答を返し、同じコントローラーメソッドへの後続の呼び出しは単に戻ります結果。いくつかの仮定を使用して、次のように作成しました

それは機能しますか、それともそれを処理するための他の良い方法はありますか? 競合状態になる可能性はありますか?

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

hystrix - Spring Async メソッドまたはイベントが HystrixRequestContext.initializeContext() 例外をスローする

私たちのコードには、いくつかの @Async メソッドと ApplicationListeners があります。これらのクラスとメソッドは、@Hystrix アノテーションを持つ API サービスを呼び出すことになります。これらの呼び出しは、次の例外をスローします。

Async メソッドに HystrixRequestContext.initializeContext() を追加しても役に立ちません。

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

java - Spring @EnableAsync は Bean の初期化順序を壊しますか?

@AsyncSpringBoot アプリケーションに (メールを並行して送信するための) メソッドを導入したいと考えていました。しかし、@EnableAsyncアプリケーションのメイン@Configurationクラス (注釈付き) に注釈を付けると、 (テスト用に schema.sql と data.sql を@SpringBootApplication実行する) が実行される前に、Flyway DB の移行が実行されます。DataSourceInitializer

'should-be-migrated' データベース テーブルを含む最初の操作が失敗します。

を削除すると、@EnableAsyncすべてが正常に戻ります。これが発生する理由と、これを修正する方法 (または問題を回避する方法) を教えてください。

更新いくつかの調査結果: @EnableAsync(mode = AdviceMode.ASPECTJ)DB セットアップの元の順序を保持しますが、@Asyncメソッドは呼び出し元スレッドと同じスレッドで実行されます。また、Bean 'objectPostProcessor' が@EnableAsync存在しない場合、または@EnableAsync(mode = AdviceMode.ASPECTJ)使用されている場合に、早期に (3 番目の Bean) が作成されることも確認しました。only@EnableAsyncを使用すると、この Bean はかなり後で作成されます。

更新 2@EnableWebSocketMessageBroker問題を再現する最小限のプロジェクトをまだ作成できませんでしたが、次のコードをコメントアウトすると、影響を受けるアプリケーションで適切な DB セットアップ順序が復元されることがわかりました。

Bean 'webSocketConfig' は、(INFO レベルのコンソール出力に従って) 作成された最初の Bean です (@EnableWebSocketMessageBroker存在する場合)。