0

サーバー上でいくつかのアクティビティを配管するために使用される大規模な Python スクリプト用の Web ベースの GUI インターフェイスを作成しています。アプリケーション自体は非常に軽量ですが、ユーザー管理などの組み込み機能の多くを再利用できるため、Django を使用して Web GUI を作成しています。

いくつかの論理ステップ、チェック、ファイルのコピーを行う関数があります。通常のプログラムでは、ログ ファイルを使用してすべてのステータスを取得していました。顧客は、ステータスの変化をリアルタイムで示す各ステップを示すページを望んでいます。

正しい戦略とは。どのような手順が取られますか? 進行状況バーは私が必要としているものではなく、リアルタイムの進行状況レポートですか? 実行する手順をアドバイスしたり、チュートリアルを参照したりできますか

4

1 に答える 1

1

ブラウザからバックエンドを定期的にポーリングして、更新があるかどうかを確認する必要があります。これは、実行時間の長いスクリプトが非同期で実行されていることを前提としています。定期的な更新はログ ファイルの末尾に似ており、新しい情報がログに追加されているかどうかを時々確認します。

これを構築するのに役立つ既存の jQuery プラグインがいくつかあります。jQuery の PeriodicalUpdaterは、サーバーの応答がしばらく変化しない場合にポーリング間隔を調整するという点で優れています。

基本的に、このようなプラグインでは、現在のステータス、いわばプロセスのログ ファイル出力を返す Django ビューが必要であり、PeriodicUpdater がそのビューをポーリングします。もちろん、PeriodicalUpdater のコールバック関数では、プロセスが完了したことを確認するチェックを追加する必要があります。おそらく、サーバービューは、「ログ」の最後にある簡単に検出できる「プロセス完了」行で終了するか、最終ステータスのみで構成される応答を返す可能性があります。

于 2012-07-09T07:42:47.090 に答える