0

入力ディレクトリを 5 秒ごとにスキャンするアプリケーションがあり、ジョブ (つまりファイル) がディレクトリに配置されると、アプリケーションはそれを読み取り、処理し、別のファイルを出力ディレクトリに出力します。

私の質問は、このアプリケーションに Web ベースのフロント エンドを配置したい場合、処理が完了するまでどのように待つのでしょうか?

  • ユーザーがジョブを送信
  • ジョブは入力ディレクトリに配置されます
  • ……私はここのウェブページで何をしているのですか?
  • 処理が発生します
  • 出力ファイルが生成されます
  • ......ジョブが終了したことをどのように知ることができますか?

私が思いついた2つの解決策は次のとおりです。

  • Web ページから x 秒ごとに出力ディレクトリをポーリングする
  • ajax を使用して、出力ファイルが存在するかどうかを報告する Web サービスまたは Web ページをポーリングします。

サーバーのより良い設計はありますか? 言い換えれば、TCP または名前付きパイプは、この状況でどのように役立つのでしょうか? (DCOM オブジェクトのため、リモーティングは使用できません。)

4

2 に答える 2

0

名前付きパイプによって、Web クライアントが自動的にポーリングするのが簡単になるとは思いませんが、変換が完了したことをサーバーが別のプロセスに通知し、最終的にメッセージをキューに入れることができるようになる可能性があります。ウェブブラウザ。

ファイル プロセスが完了したかどうかを確認するために、Web クライアントを数秒ごとにポーリングするか、または、Juggernaut のようなコマンドをページに「プッシュ」することができます。Juggernaut は Flash を使用して、サーバーから JavaScript を継続的にフィードする Web ブラウザーでソケットを開きます。ファイルが完了したことをブラウザに警告するコマンドを送信し、リダイレクトを発行する役割を果たしている可能性があります。

于 2009-06-05T00:41:49.323 に答える
0

私たちが過去に商業的に行った解決策は、基本的に、デーモンがログ (通常は DB) に日付/時刻スタンプを付けて書き込み、Web フロントエンドがログから最新の X 個のエントリを表示することです。 「ディレクトリを検索しましたが、ファイルが見つかりません」というメッセージをすべて非表示にする小さなトグルで、かなりうまく機能し、後でAJAX(20秒ごとにリロードされるタイマー)でアップグレードしました。

于 2009-06-05T01:32:41.000 に答える