2012-03-11 6 views
0

ループ処理中にRuby/Sinatraアプリケーションでループの結果をレンダリングするための宝石/パターンはありますか?現時点では、私のループは処理を終えるのに1〜2分かかり、理想的にはユーザーが1-2分待つのではなく、リアルタイムで結果を出力したいのです。Ruby/Sinatra app - ループ処理中にループ結果が表示される

答えて

2

あなたができることは、最初にリクエストを受け取ったときに、別のスレッドでプロセスを開始し、 'process started flag'でリクエストを返すことです。

今、このスレッドは、(一時テーブルであってもよい)ループを実行して、データベース内の中間結果を記憶しています。

同時に、あなたのビュー(JavaScriptは私が想定している)はループが実行されている間に中間結果を生成するAjaxリクエストをこの一時テーブルに作成し始めます。プロセスが完了すると

は、Ajaxは、「完了」が返され、要求が停止することができます。同時に、スレッドはテーブルを削除して停止することができます。

+0

ありがとうShaunak - 私はちょうどhttp://pusher.com/ –

+0

ああも助けるかもしれないこの素晴らしいサービスを見つけました!ありがとう!!クールなサービスのように見えます!私はそれを試して待つことはできません! – Shaunak

関連する問題