問題タブ [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.
java - Spring-boot @Async が @Scheduled で実行されていない
このチュートリアルを使用しました。これは、この SSCCE のベースとしてgithub プロジェクトです。
理由は不明ですが、メソッド@Async
から実行されたとマークされた@Scheduled
メソッドは常に同期的に実行されます。
コードを非同期で実行するための修正または回避策を探していますperformTask()
。
以下のクラス:
アプリケーション.java
MyAsyncService.java
ScheduledTasks.java
次の同期結果を生成します。
java - Spring Async: Async メソッド内で春の hatoas ControllerLinkBuilder を呼び出す方法
Spring Async メソッド内で ControllerLinkBuilder.linkTo メソッドを呼び出していますが、現在のリクエストを見つけることができません。
例外:
java - 非同期およびトランザクション メソッド
ファイルからデータベースにインポートする Web アプリケーションがあります。このメソッドは非同期でトランザクション対応で、オブジェクトの読み取りと挿入を行います。問題は、インポート方法に 5 ~ 6 分かかることです。トランザクションを閉じずに import メソッドを 2 回スローすると、2 番目のメソッドは挿入の ID を繰り返し取得します。最初の実行は問題なく実行されますが、コミットすると 2 番目の実行は失敗します。これは私のコードです:
どうすればこれを修正できますか? 非同期メソッドをテールで管理する方法はありますか? 別のメソッドが終了するまで開始されないメソッドの場合。
spring - Spring の Future を使用するおよび非同期アノテーション
Spring の非同期呼び出しの使用方法に関するこのページを読んでいました: https://spring.io/guides/gs/async-method/
これにより、いくつかの設計上の問題が生じます。
1) 非同期機能を抽象化の背後に隠していますか、それとも直接使用していますか?
2) 上記のリンクの例では、各非同期呼び出しが返されたかどうかを 10 ミリ秒ごとにチェックする「while ループ」がコードに含まれていました。これを実装する他の方法はありますか?その後、進行中の「while」ループはありますか? :)あまり効率的ではありません...
ありがとう!
java - Spring Retry を AsyncRestTemplate と統合する方法
Spring Retry
で外部呼び出しとどのように統合できますAsyncRestTemplate
か? それが不可能な場合、それをサポートする別のフレームワークはありますか?
私のユースケース:
future.get()
この呼び出しを再試行するにはどうすればよいですか? 外部サービスが 404 を返した場合、その間にそれらのタスクを再び呼び出さないようにして、外部呼び出しを再試行したいですか? 実際には外部サービスへの別の呼び出しを行わないため、 aでラップfuture.get()
することはできません。retryTemplate.execute()
spring-mvc - Spring MVC: エンコードされた URL を持つ DeferredResult: 無効なエンコードされたシーケンス
DefferedResultでSpring MVC 4.1.6を使用しています。順調です。しかし、エンコードされた URL を使用してリクエストした場合、エラーが発生しました。
コントローラ
リクエスト
エラー
この問題は、一部の結果がDefferedResultに設定された後の URL のデコードに関する問題ですが、HttpServletRequest.getRequestURI()は既に UTF-8 からデコードされています。修正方法は?
spring - 実行時間の長いタスクを使用した spring MVC DeferredResult の例
春の DeferredResult を使用して長時間実行されるトランザクションタスクを実行する方法を教えてもらえますか? ネットで利用可能な多くのチュートリアルを経験しましたが、Restベース以外のアプリケーションではドキュメントも例も明確ではありません。これは長いポーリングを必要としませんが、バックグラウンドでタスクを実行し、すぐにHTTP応答を返し、同じコントローラーメソッドへの後続の呼び出しは単に戻ります結果。いくつかの仮定を使用して、次のように作成しました
それは機能しますか、それともそれを処理するための他の良い方法はありますか? 競合状態になる可能性はありますか?
hystrix - Spring Async メソッドまたはイベントが HystrixRequestContext.initializeContext() 例外をスローする
私たちのコードには、いくつかの @Async メソッドと ApplicationListeners があります。これらのクラスとメソッドは、@Hystrix アノテーションを持つ API サービスを呼び出すことになります。これらの呼び出しは、次の例外をスローします。
Async メソッドに HystrixRequestContext.initializeContext() を追加しても役に立ちません。
java - Spring @EnableAsync は Bean の初期化順序を壊しますか?
@Async
SpringBoot アプリケーションに (メールを並行して送信するための) メソッドを導入したいと考えていました。しかし、@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
存在する場合)。