【发布时间】:2012-04-11 22:32:03
【问题描述】:
我在我的 Rails 应用程序中使用 rake 任务,在处理“少量数据”时很好,但如果需要检索/计算数十万条记录,则任务可能需要很多时间。
Rake 任务很容易理解和开发,我真的很想继续使用它们,但是当涉及到大量数据时,有什么建议吗?
例如,我在考虑 map/reduce 算法。这是要走的路吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rake mapreduce
我在我的 Rails 应用程序中使用 rake 任务,在处理“少量数据”时很好,但如果需要检索/计算数十万条记录,则任务可能需要很多时间。
Rake 任务很容易理解和开发,我真的很想继续使用它们,但是当涉及到大量数据时,有什么建议吗?
例如,我在考虑 map/reduce 算法。这是要走的路吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rake mapreduce
慢的不是耙子。 Rake 只是启动您的应用程序的一个实例并运行您发送给它的任何内容。
您可以尝试重构您的代码,看看是否有一些您以前没有看到的快捷方式。
如果可以同时完成任务,您可以尝试线程化或分叉任务。 如果您要在 Rails 应用程序中尝试此操作,我建议您使用 Spawn。
有时您的工作只需要花费很长时间。大数据 = 大时代。
另外,如果您在一天中定期运行您的 rake 任务,我建议您使用像 Delayed_Job 这样的东西来处理这个问题,这样您就不会在每次需要运行任务时启动和退出 Rails 实例。
【讨论】: