みなさん、こんにちは。フォーラムは初めてですが、SpringのcommonjWorkManagerTaskExecutorの操作について質問がありました。私はこのテーマに関するより良い情報を探しているたくさんのフォーラムに参加していますが、このテーマに関する詳細な情報は何も見ていません。これが私の状況です。
私のアプリケーションは、ThreadPoolTaskExecutorによって処理されていた複数のスレッドを使用しています。これは、Websphere 7.0アプリケーションサーバーを使用しているため、友人が正しい選択ではないと私に言ったものです。すべてが正しく機能し、若干の調整を加えることで、ThreadPoolTaskExecutorをWorkManagerTaskExecutorに置き換えることができました。アプリケーションを実行すると、Websphereサーバーのデフォルトのワークマネージャーを介してスレッドが起動します。発生しているように見える問題は、workManagerTaskExecutor.waitForAll(collection、timeout);を使用しているにもかかわらずです。スレッドが完了するのを実際に待つことはありません。スレッドがそれぞれのメソッドを実行していることは機能していることを私は知っています。なぜなら、このすべての後に長いforループを発行すると、データはそこにあり、そうでない場合はデータがないからです。
WorkManagerTaskExecutorは進むべき道ですか?または、エンタープライズWebアプリケーションで複数のスレッドを処理するには、ThreadPoolTaskExecutorを使用するだけで十分でしょうか。
WorkManagerTaskExecutorが進むべき道である場合は?なぜwaitForAllメソッドがメソッドが実行されたかのように完了するのかについてのアイデアはありますか?明らかにそうではないのはいつですか?ページが読み込まれた後、ログでメソッドがまだ実行中であり、最終的には完了していることがわかります。
どんな助けでも大歓迎です。私が何かを省略した場合、私は喜んで問題についてより多くの情報を提供しようとします。私は与えられるかもしれないどんな助けにも心から感謝します。
前もって感謝します、
明細書