2009-04-16 4 views
1

私たちは、次のような状況があります。私たちは、コントローラ内のアクションを実行し、URLを呼び出すレール/助手席/不明コンテンツタイプ

  1. を。アクションはかなり長く実行されます.XMLの大きな文字列を作成し、PDFを生成し、完了するとリダイレクトされるはずです。

  2. 60秒程度後、ブラウザ専用200を取得するが、「アプリケーション/ X-未知のコンテンツタイプ」NO体と無応答ヘッダー(ヘッダーを見てタンパーを使用して)

  3. のコンテンツ・タイプと
  4. コントローラのアクションが実際に完了するまで実行し続け、

これはコントローラのアクションをステージングで、私たちのprod環境で起こっているPDFを生成することは予想されるようにリダイレクトする、完了するまで実行されます。

見た目はどこですか?

Apache/Phusion PassengerでRails 2.2.2を実行しています。

おかげで、

答えて

1

は私がいない100%確信している、おそらく要求アウトApacheの回では、アプリケーションをレールに。 ApacheのTimeoutディレクティブをより高く設定しようと思いますか?次のようなものがあります。

1

私はこのタスクをジョブキューにバンプし、ユーザーを座らせて待機させるのではなく、すぐに戻ることを検討します。それ以外の場合は、多くの人がこれを使用しようとするときに問題の世界に向かい、新しい接続を処理するために利用可能なrails appインスタンスを使い果たします。

これを簡単に行う方法の1つは、文書の作成をトリガするためにAjaxポストを使用し、これをDelayed Jobにドロップして、待ち状態のユーザーにジョブの状態を知らせるajaxを使用して10秒の定期チェックを実行することです。 delayed_jobがバックグラウンドでのタスクの処理を完了し、データベース内の何かを更新して完了したことを示すと、ユーザーはajaxを介して新しく作成されたドキュメントにリダイレクトできます。

関連する問題