【问题标题】:Process Resque jobs faster in Heroku?在 Heroku 中更快地处理 Resque 作业?
【发布时间】:2013-05-07 15:54:26
【问题描述】:

我在 Heroku 应用程序中使用 Resque 来处理后台作业,我想知道是否有一种方法可以更快地处理给定的作业。

例如,有一些工作涉及获取一个大文件 (20GB+)、读取其内容并将其拆分为数据库条目(数百万个条目)。

这发生在一个工作中。

投入更多的工人是行不通的,因为只有一名工人用于这项工作。那么有没有办法让给定的工人工作得更快?

【问题讨论】:

    标签: ruby-on-rails heroku resque


    【解决方案1】:

    没有看到任何代码很难说,但也许有机会优化它正在创建的 UPDATE 或 INSERT?

    如果它在循环中

    csv_file.each_line do |line|
      Record.create ...
    end
    

    您可以通过批处理它来提高性能,以便它从文件中读取 1,000 行,然后对数据库执行 1,000 行的 INSERT。

    这个SO answer 展示了如何使用 create 进行批量插入。

    【讨论】:

      【解决方案2】:

      一种选择是为您的工作人员使用具有双 CPU 和双内存的新 2x dyno。

      【讨论】:

        猜你喜欢
        • 2016-05-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 2016-08-05
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        • 2017-06-18
        相关资源
        最近更新 更多