2012-04-11 48 views
0

我在Rails應用程序中使用rake任務,處理「少量數據」時很好,但如果需要檢索/計算幾千條記錄,則這些任務可能需要很長時間。如何加快處理大量數據的耙子任務?

Rake任務很容易理解和開發,我真的想繼續使用它們,但是當涉及到大量數據時,是否有一些建議?

我正在考慮map/reduce算法。這是要走的路嗎?

回答

1

這不是耙子很慢。 Rake只是啓動應用程序的一個實例並運行發送給它的任何內容。

您可以嘗試重新考慮您的代碼,並查看是否有一些您之前沒有看到的快捷方式。

如果是可以同時完成的任務,您可以嘗試關閉或分叉任務。 如果你打算在你的Rails應用中嘗試這個,我會推薦使用Spawn

有時你的工作只需要很長時間。大數據=大時間。另外,如果你在整個一天中定期運行你的rake任務,我會推薦使用類似Delayed_Job的方式來處理這個問題,所以你每次需要運行任務時都不會啓動並退出rails實例。

+0

我使用Delayed_Job來完成大任務。當發生大量的處理時,我發現它有助於減少服務器的內存使用量。 – Pete 2012-04-11 15:54:51