Railsアプリケーションでrakeタスクを使用しています。「少量のデータ」を処理する場合は問題ありませんが、数千のレコードを取得/計算する必要がある場合、タスクには多くの時間がかかる可能性があります。
Rake タスクは非常に理解しやすく、開発も簡単で、今後も使い続けたいと思っていますが、データが大量になる場合の推奨事項はありますか?
たとえば、マップ/リデュースアルゴリズムを考えていました。それは行く方法ですか?
Railsアプリケーションでrakeタスクを使用しています。「少量のデータ」を処理する場合は問題ありませんが、数千のレコードを取得/計算する必要がある場合、タスクには多くの時間がかかる可能性があります。
Rake タスクは非常に理解しやすく、開発も簡単で、今後も使い続けたいと思っていますが、データが大量になる場合の推奨事項はありますか?
たとえば、マップ/リデュースアルゴリズムを考えていました。それは行く方法ですか?
遅いのはレーキではありません。Rake は、アプリケーションのインスタンスを起動し、送信したものを実行するだけです。
コードをリファクタリングして、以前は見られなかったショートカットがあるかどうかを確認できます。
同時に実行できるタスクであれば、タスクをスレッド化またはフォークすることができます。Rails アプリでこれを試みる場合は、Spawnを使用することをお勧めします。
場合によっては、ジョブに長い時間がかかることがあります。ビッグデータ = ビッグタイム。
また、1 日中定期的に rake タスクを実行している場合は、代わりに Delayed_Job などを使用してこれを処理することをお勧めします。これにより、タスクを実行する必要があるたびに Rails インスタンスを起動して終了する必要がなくなります。