我在Heroku应用程序中使用Resque进行后台工作,我想知道是否有办法更快地处理给定的作业。
例如,有一些工作涉及获取大文件(20GB +),读取其内容,并将其拆分为数据库条目(数百万条目)。
这发生在一份工作中。
投掷更多工人不起作用,因为只有一名工人被用于工作。那么有没有办法让一个给定的工人更快地工作?
答案 0 :(得分:1)
没有看到任何代码很难说,但也许有机会优化它创建的UPDATE或INSERT?
如果它像
那样循环csv_file.each_line do |line|
Record.create ...
end
您可以通过对其进行批处理来提高性能,使其从文件中读取1000行,然后对数据库执行1,000行的INSERT。
此SO answer显示如何使用create进行批量插入。
答案 1 :(得分:0)
一种选择是使用具有双CPU和双内存的新2x dynos。