Java EEに関する知識はあまりなく、現在学習中です。Java EE WebApp + icefacesで長時間実行されるタスク
私は、ユーザーによって呼び出される長時間の作業(最大数分間)を伴うプロジェクトを考え出しました。タスクはいくつかのステップで構成されています。もちろん、ユーザーに進捗状況を示したいと思います。
このプロジェクトでは、JPA、JSF、IcefaceでJava EEを使用しています。それはグラスフィッシュで実行されます。
経験豊富な同僚は私に次のパターンをadviced:
- 応答オブジェクトを作成し、
- が各ステップ
- 後に応答オブジェクトを永続化要求を処理するステートレス、非同期EJBの作成応答オブジェクトをクエリして表示する
これはうまくいきます。私の唯一の問題は、進行状況を反映するようにステータスサイトを更新することです。現在、私はx秒ごとに簡単なJavaScriptページをリロードしてこれをやっています。
ステートレスejbからjsfバッキングBeanへの現在のステップを反映するための方法やパターンを知っていますか? また、x秒ごとにバッキングBeanの値を照会する方法を知っていますか?
編集:
私はメカニズムを押しICEfacesをを認識していますが、私はステータス更新サイトは、以下の理由で計算EJBから切り離すことにしたい。
- バッキングBeanがありますユーザーがサイトを離れて後で結果を取得するために戻ってきたために既に破棄されています
- 複数のセッションがあるため、1人のユーザーに複数のBeanが存在する可能性があります
- クリーンデザイン
もちろん、残念ながら私は進捗状況を裏づけしているBeanに通知するメカニズムを知らない。バッキングBeanはすでに破棄されている可能性があります。ユーザーは計算が終了したときに後で戻ってくるでしょう。カプセル化のために、EJBにアイソフェイスコードは必要ありません。 – Michael