私はレールアプリケーションでレーキタスクを使用していますが、「データ量は少量」を扱う場合は問題ありませんが、何千ものレコードを取得/計算する必要がある場合は、時間がかかることがあります。大量のデータを処理するレーキタスクを高速化するにはどうすればよいですか?
レーキタスクは非常に理解して開発が容易であり、私は本当にそれらを使い続けたいと思いますが、膨大な量のデータに関してはいくつかの推奨事項がありますか?
私はmap/reduceアルゴリズムを考えていました。それは行く方法ですか?
私はレールアプリケーションでレーキタスクを使用していますが、「データ量は少量」を扱う場合は問題ありませんが、何千ものレコードを取得/計算する必要がある場合は、時間がかかることがあります。大量のデータを処理するレーキタスクを高速化するにはどうすればよいですか?
レーキタスクは非常に理解して開発が容易であり、私は本当にそれらを使い続けたいと思いますが、膨大な量のデータに関してはいくつかの推奨事項がありますか?
私はmap/reduceアルゴリズムを考えていました。それは行く方法ですか?
これは遅いわけではありません。 Rakeはアプリケーションのインスタンスを起動し、送信した内容を実行しています。
コードを再調整して、以前に見たことのないショートカットがあるかどうかを確認できます。
同時に実行できるものであれば、タスクをスレッドまたはフォークすることができます。 あなたのレールアプリでこれを試みようとしているなら、Spawnの使用をお勧めします。
時には、あなたの仕事は長い時間がかかることがあります。ビッグデータ=ビッグタイム。
また、レイクタスクを毎日定期的に実行している場合は、Delayed_Jobのようなものを使用してこれを処理して、タスクを実行するたびに起動しないようにし、レールインスタンスを終了することをお勧めします。
私は大きな仕事にDelayed_Jobを使用します。私は、多くの処理が行われているときにサーバーのメモリ使用量を減らすのに役立つことがわかります。 – Pete