我在Rails应用程序中使用rake任务,处理“少量数据”时很好,但如果需要检索/计算几千条记录,则这些任务可能需要很长时间。如何加快处理大量数据的耙子任务?
Rake任务很容易理解和开发,我真的想继续使用它们,但是当涉及到大量数据时,是否有一些建议?
我正在考虑map/reduce算法。这是要走的路吗?
我在Rails应用程序中使用rake任务,处理“少量数据”时很好,但如果需要检索/计算几千条记录,则这些任务可能需要很长时间。如何加快处理大量数据的耙子任务?
Rake任务很容易理解和开发,我真的想继续使用它们,但是当涉及到大量数据时,是否有一些建议?
我正在考虑map/reduce算法。这是要走的路吗?
这不是耙子很慢。 Rake只是启动应用程序的一个实例并运行发送给它的任何内容。
您可以尝试重新考虑您的代码,并查看是否有一些您之前没有看到的快捷方式。
如果是可以同时完成的任务,您可以尝试关闭或分叉任务。 如果你打算在你的Rails应用中尝试这个,我会推荐使用Spawn。
有时你的工作只需要很长时间。大数据=大时间。另外,如果你在整个一天中定期运行你的rake任务,我会推荐使用类似Delayed_Job的方式来处理这个问题,所以你每次需要运行任务时都不会启动并退出rails实例。
我使用Delayed_Job来完成大任务。当发生大量的处理时,我发现它有助于减少服务器的内存使用量。 – Pete 2012-04-11 15:54:51