誰もがこのようなことを光栄に思っているので、私はこれがダムの質問であると感じます。どのようにdelayed_jobからの出力を得るか、例えばPDF/HTMLレポート
私の必要性は簡単です - 私はHerokuでRuportを使用していくつかのレポートを実行しています。複雑なレポートは時間がかかり、タイムアウトします。 delayed_jobを使うことに決めましたが、代わりに何かを使うことができました。私がやっていることが分かれば、他のものにも使うかもしれない。
私はdelayed_jobとその兄弟を立ち上げ、実行する方法、ジョブキューを管理する方法などに関する多くの例、railscasts、ドキュメントを参照しています。 ..
どのように私は私の待ち行列の仕事に戻ってくるのですか?
今、私はちょうどこのような出力を生成:
@report_output = @report_controller.render(@report_format,@report_params)
send_data @report_output, :filename => "#{@report_type}.#{@report_format}", :type => "application/#{@report_format}" unless :html == @report_format
を(そして、それはHTML形式のレポートであれば、その後、それだけで正常にページをレンダリング)
それは開発に正常に動作し、回生産中に私はドキュメントから出力を生成してユーザにメールするのはかなり簡単なので、仕事を元に戻す心配はありません。
しかし、私はそれを望んでいません。私は、ユーザーに進行状況ページを表示し、完了するまでサーバーを定期的にポーリングしてから、HTMLまたはPDF出力を表示するようにリダイレクトします。私はこれが仕事のIDの何らかの種類を返して、彼らがそれをチェックできるようにユーザに戻すことを期待していますが、どこから来たのか分かりません。私はテーブルを見ることができると思うが、それはばかげているようだ。私は場合によっては、キューに入れられた/完了したジョブのリストをユーザーに表示し、手動で選択させることもできますが、それは残酷です。彼らはただレポートをダウンロードしたいだけで、1〜2分かかっても気にしません。
実際にレポート用にテーブルを使用しているわけではありません。必要はありません。保存されていませんが、テーブルとActiveRecordモデルを使用すれば助かります。私はそれをしなければならないようには思われません。私はRails 2.3を使用していますが、それは私の質問にも関係があります。
私が求めているように、誰もそれを書き留めて気にしないように見えるようですが、見つけられないようです。サンプルアプリはありますか?私は何が欠けていますか?私は愚かだと感じる。
私は、「私は彼らがテーブルとActiveRecordモデルを手伝ってくれればと思っています」と言っていました.-私はReportGenレコードを生成し、新しいレコードを作成し、そこに状態とファイル名を格納して、ユーザーがそれをポーリングできます。 (a)これ以上のように聞こえるはずですが、(b)他の誰かのサンプルコードが見つからないのはなぜですか? 私はそのレコードがジョブのID番号を持っていると思うので、後でハングしたジョブを削除/クリーンアップできますか?私はどこからそれを手に入れますか?そして、なぜ私はそれを手に入れることができませんか? –