【问题标题】:How to speed up rake tasks handling big amount of data?如何加快处理大量数据的 rake 任务?
【发布时间】:2012-04-11 22:32:03
【问题描述】:

我在我的 Rails 应用程序中使用 rake 任务,在处理“少量数据”时很好,但如果需要检索/计算数十万条记录,则任务可能需要很多时间。

Rake 任务很容易理解和开发,我真的很想继续使用它们,但是当涉及到大量数据时,有什么建议吗?

例如,我在考虑 map/reduce 算法。这是要走的路吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 rake mapreduce


    【解决方案1】:

    慢的不是耙子。 Rake 只是启动您的应用程序的一个实例并运行您发送给它的任何内容。

    您可以尝试重构您的代码,看看是否有一些您以前没有看到的快捷方式。

    如果可以同时完成任务,您可以尝试线程化或分叉任务。 如果您要在 Rails 应用程序中尝试此操作,我建议您使用 Spawn

    有时您的工作只需要花费很长时间。大数据 = 大时代。

    另外,如果您在一天中定期运行您的 rake 任务,我建议您使用像 Delayed_Job 这样的东西来处理这个问题,这样您就不会在每次需要运行任务时启动和退出 Rails 实例。

    【讨论】:

    • 我使用 Delayed_Job 处理大任务。我发现在进行大量处理时,它有助于减少服务器的内存使用量。
    【解决方案2】:

    我推荐threachjruby

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 2013-05-12
      • 1970-01-01
      相关资源
      最近更新 更多