1

ユーザーが多くのページで一連のアクションを直線的に実行する Java EE アプリケーションがあります。最初のページの 1 つに、データベース クエリを実行するために必要な詳細があり、その結果が最後のページの 1 つに必要です。このデータベースクエリがページ間で実行されるのをユーザーに待たせたくありません。代わりに、ユーザーが続行している間にバックグラウンドで実行したいと考えています。

これを行う最善の方法は何ですか?

Java EE アプリケーションでスレッドを使用することはお勧めできません。

4

2 に答える 2

3

最初のステップで提供されたデータを使用して、非同期 EJB またはサーブレットで操作を呼び出すことができます (ただし、Java EE を使用する場合は、この種のジョブにより適しているため、EJB を使用する必要があります)。
こちらをご覧ください: JavaEE 6 でサブプロセスを実行する

非同期メソッドが返すオブジェクトを保存Future<?>し、最後のページでそのget(-)コマンドを呼び出すことができます。この最後の段階でユーザーをブロックすることもできます。おそらく、ユーザーに続行を許可する代わりに結果を表示したいからです。

于 2012-10-04T07:59:36.730 に答える
1

アプリケーション サーバーはカスタム スレッドを認識せず、これらのスレッドに関連付けられたリソースを管理できないため、J2EE アプリケーションでスレッドを管理することはお勧めできません。ただし、WebSphere や WebLogic などの一部のアプリケーション サーバーでは、スレッドの使用がサポートされています。これを実現するには、commonj のようなフレームワークを使用できます。

このオプションも検討する必要があります。

于 2012-11-29T09:52:18.767 に答える