【发布时间】:2017-02-07 22:50:50
【问题描述】:
当我通过任务运行这段代码时,它可以工作
task :importGss => :environment do
Gss.delete_all
file = Rails.root + "app/assets/CSVs/gss.csv"
csv_text = File.read(file)
puts csv_text.size
csv = CSV.parse(csv_text, :col_sep => ';', :headers => true)
csv.each do |row|
Gss.create!(row.to_hash)
end
当我使用 MVC 运行它时,我收到以下消息:
ActiveRecord::StatementInvalid (SQLite3::BusyException: 数据库被锁定:
我已经把上面的代码放在了 Gss 模型中的一个函数中。 导入从浏览器启动,GET 路由到调用模型导入函数的控制器 导入完成后,应将完整的记录列表返回到视图。 csv 文件有 4k 行。 导入过程需要时间,并且似乎在 60 秒后重新发送 GET。 有人能解释一下如何避免重新发送导致导入崩溃吗?
【问题讨论】:
标签: ruby-on-rails sqlite