2011-12-13 7 views
0

私はPython WebServer(CherryPy)を使用していますが、質問はよりオープンであり、かなり一般的です。現時点では、AjaxコールトラフJQuery loadをボタンクリックすると、いくつかの計算がトリガーされ、ファイル生成が終了します。現時点で 長いタスクが終了した後にブラウザ/ページに通知する

はすぐに処理が将来のファイルへのリンクは、サーバ上で生成されたページに、バックグラウンドスレッドで私 loadリターンを始めると。生成されるファイルはいくつかあり、プロセス全体には数分かかることがあります。ファイルへのリンクを表示するにはどうすればよいのですか? ...現時点では、リンクはファイルがなくなるまで死んでおり、リンクが生き残ったときにユーザーに知らせる方法はありません。

更新:Thanks JB Nizet。 Pythonスレッドセーフなデータ構造についてのアドバイスは誰にでもできますか?主題について多くのことを知らず、どこから始めるべきか分かりません。

答えて

1

最新の生成ファイル(または生成されたファイルの完全なリスト)をn秒ごとに取得し、リストが完成したらポーリングを停止するか、または最初のajaxクエリ(生成プロセスを開始するもの) )が完了しました。

ファイルを生成するスレッドは、生成されたファイルのリストをスレッドセーフな共有データ構造で利用できるようにする必要があります。