use*_*176 2 ruby mysql ruby-on-rails heroku delayed-job
我正在构建一个使用 Heroku 部署的 Rails 应用程序,我需要能够导入和处理大型 csv 文件(5000 多行)。
使用内置 ruby csv 解析器在控制器中执行此操作需要 30 秒以上,并导致 Heroku dyno 超时
我正在考虑将 csv 放入数据库,然后使用elasto_job对其进行处理,但这种方法限制在 4200 多行。
我正在使用 mysql 和 longtext 作为包含文件的列,因此数据库应该能够处理它
对于这个用例有什么想法吗?
下面是导入文件的示例代码
n = SmarterCSV.process(params[:file].path) do |chunk|
Resque.enqueue(ImportDataMethod, chunk)
end
Run Code Online (Sandbox Code Playgroud)
读取文件后,将数据记录传递给 resque,然后在后台导入(如果您使用上面的 Rails 4.2,则可以与 Rails Active Job 结合使用)
| 归档时间: |
|
| 查看次数: |
2841 次 |
| 最近记录: |