2011-02-09 9 views
0

私は、WebベースのソフトウェアJ2EEを開発している会社で働いています。ウェブページを再オープンした後でも、Javaプロセスの実行状況を表示

ウェブアプリケーションでは、csvファイルをアップロードすることができます。 Iveには、各行を読み込んで処理する読者クラスがあります。 (各csv行の値が有効であるかどうかをチェックし、それらをデータベースに挿入します)。これに伴い、読者はプロセスの最後にこの番号を示すために読み込まれた行を数えます。

ユーザーはファイルをアップロードし、プロセスの開始後に「プロセス」ボタンをクリックすることができます。 しかし、これらのプロセスは、csvファイルが非常に大きくなる可能性があるため、非常に長い持続時間を持つ可能性があります。ユーザがウェブブラウザを閉じると、プロセスはまだサーバ上で継続する。

私はユーザーに進捗状況を伝えさせてほしい。ブラウザを閉じて再度ログインしてもですから、各プロセスにどのような種類のIDが付いていて、どのユーザーのプロセスがどのプロセスであり、どのプロセスが進行状況であるかを知る必要があります。

私はこれを達成するためのJavaに何らかのメカニズムがありますか?

答えて

0

進捗状況を追跡する最も簡単な方法は、プロセスにプロセスのデータベーステーブルへの更新を書き込むことです。ユーザーが新しいcsvファイルをアップロードして「プロセス」をヒットすると、まずこのテーブルにエントリを作成できます。このプロセスは、テーブルに定期的にプロセスの進捗状況を書き込みます。ユーザーが自分のアカウントにログインすると、彼が始めたすべての仕事とその進捗状況を見ることができます。これは最もクリーンなアプローチではありませんが、作業が完了します。あなたの特定のフレームワークには多くのことがあります。おそらく、あなたはプロセスIDでこのテーブルにエントリを作成することができ、テーブルの進捗状況を更新する必要はありません。フロントエンドは、あなたのプロセスにRPCを使用して、その進捗状況を問い合わせることができます。

+0

Thanx Dinesh!実際に私は、データベース構造を変更することなく、解決策を望んでいました。しかし、私は他の選択肢はないと思う。私はEclipselinkフレームワークを使用しています。私のアプリケーションアーキテクトとこれについて議論します。迅速な返事yaarのための高尚な! –

0

データベースのテーブルにcsv as rawを格納する場合、エントリには一意のUPLOAD_IDが必要です。このテーブルには、CLIENTを外部キーとして参照する別の列が必要です。要するに、アップロードされたエントリを、アップロードを実行したクライアントのクライアントまたはユーザ名に関連付ける必要があります。

+0

あなたの返事のためのThanx!私のアプリケーションアーキテクトとこのことについて議論しています! –

+0

あなたが助けてくれた場合は、私の答えをupvotingしてくれてありがとう。 – dimitrisli

関連する問題