服务器场和/或其他快速运行ruby脚本的解决方案



我有一个ruby脚本,它将花费大约5个小时来处理我指定的人民币。问题:我们需要在2小时内拿到。

正在运行的代码是非线程安全的,并从xlsx输入输出csv文件. ...我以前从未使用过服务器场,但我猜非线程安全的ruby不是他们的东西(?)

简而言之,是否有任何类型的服务器群或服务或任何方法,我可以在不到一两个小时的时间内处理一个需要5个小时的ruby脚本?

我已经使用Heroku和Sidekiq做了类似的事情。Heroku为低成本计算提供免费和迷你计划,而Sidekiq gem让你可以将工作分块给几个工人,让他们同时运行,从而更快地完成。

你知道你的瓶颈在哪吗?它是XLSX文件的输入还是CSV的输出?如果是后者,请导入XLSV文件,并将其中的部分块发送给Sidekiq worker。

例如,您可以将XLSX文件分成每1000行的块,然后

rows.each do |row|
  MySidekiqWorker.perform_async(row)
end

和你的MySidekiqWorker可能看起来像:

class MySidekiqWorker
  include Sidekiq::Worker
  def perform(row)
    # append processed data to CSV
  end
end

你的工人做所有繁重的工作,几乎肯定会比你的笔记本电脑没有这样的帮助快。

相关内容

  • 没有找到相关文章

最新更新