0

私はウェブサイトを構築しており、管理者ページがあります。管理者は、レポート タスクを実行する必要があります。つまり、このタスクは、すべてのレコードを繰り返し取得して情報を取得し、pdf ファイルを生成します。これは、アプリとデータベースに負担がかかります。

それに対する通常のアプローチは何ですか?クラスのメソッドを呼び出すボタンが必要ですか、それともレーキ タスクが必要ですか? HTTP GET リクエストには制限があり、レポートの生成にそれ以上の時間がかかると、リクエストが強制終了されると聞きました。

send_data(....)レポートが完了すると、ユーザーに素敵なダウンロードポップアップボックスが表示されるように使用したいと思います。メーラーを使ってメールしたほうがいいでしょうか?

ありがとう

4

1 に答える 1

3

私の職場のRailsアプリにも同様の機能があります。

PDF ファイルを生成するリクエストを開始する 1 つの URL/アクションがあり、リクエストが正常に開始されたことをすぐに返します。

次に、レポートが完了したかどうかを返す AJAX を使用してポーリングできる別のアクションがあり、完了したときにユーザーに PDF を提供します。

実際の生成は、Web サーバーのタイムアウトの影響を受けないSidekiqワーカーによって行われます。

于 2013-11-06T18:56:11.897 に答える