2012-04-11 9 views
0

私はレールアプリケーションでレーキタスクを使用していますが、「データ量は少量」を扱う場合は問題ありませんが、何千ものレコードを取得/計算する必要がある場合は、時間がかかることがあります。大量のデータを処理するレーキタスクを高速化するにはどうすればよいですか?

レーキタスクは非常に理解して開発が容易であり、私は本当にそれらを使い続けたいと思いますが、膨大な量のデータに関してはいくつかの推奨事項がありますか?

私はmap/reduceアルゴリズムを考えていました。それは行く方法ですか?

答えて

1

これは遅いわけではありません。 Rakeはアプリケーションのインスタンスを起動し、送信した内容を実行しています。

コードを再調整して、以前に見たことのないショートカットがあるかどうかを確認できます。

同時に実行できるものであれば、タスクをスレッドまたはフォークすることができます。 あなたのレールアプリでこれを試みようとしているなら、Spawnの使用をお勧めします。

時には、あなたの仕事は長い時間がかかることがあります。ビッグデータ=ビッグタイム。

また、レイクタスクを毎日定期的に実行している場合は、Delayed_Jobのようなものを使用してこれを処理して、タスクを実行するたびに起動しないようにし、レールインスタンスを終了することをお勧めします。

+0

私は大きな仕事にDelayed_Jobを使用します。私は、多くの処理が行われているときにサーバーのメモリ使用量を減らすのに役立つことがわかります。 – Pete

関連する問題