2012-01-30 11 views
5

DBトランザクションが多かったため、アプリケーションのExport to Excelリンクをクリックするとタイムアウトエラーが発生しました。 この機能をバックグラウンドに変更して、バックグラウンドプロセスの実行中にユーザーが前に進むことができるようにしたい。 ユーザーがExport to Excelリンクバックグラウンド/新しいスレッドプロセスをクリックして、ファイルをダウンロードするリンクが付いたメールがユーザーに送信されたい場合。 私はこれを達成するための最良の方法を知りたい新しいスレッドまたはバックグラウンドプロセスの作成?あなたがhttps://github.com/defunkt/resqueまたはhttps://github.com/collectiveidea/delayed_jobを使用したい場合がありアドバンスRails新しいスレッドまたはバックグラウンドプロセスの作成

答えて

0

の3つのタイプがあります。メッセージキュー、

  1. 待ち行列なし - バックグラウンドタスクのために新しいスレッド/プロセスがトリガーされます。例:spawn
  2. データベース駆動の対応タスクはデータベースのテーブルに格納され、完了時に自動的に削除されます。たとえば、backgroundrb、
  3. メッセージキュー - メモリに保存されたジョブ、例えば:ムクドリ

私はresqueを使用し、設定には少し複雑であることを聞いていません。 タスクをバックグラウンドで実行する以外に、一定の間隔で繰り返しタスクを実行したい場合は、backgroundrbに進むことができます。さもなければ遅れた仕事は正しい選択である。

関連する問題