這是一段代碼。當我將此添加到與timeout
cron整個陣列被保存兩次。當我刪除超時沒有得到保存Rails:Active Record Timeout
在這種情況下,我們希望保存數組結果(來自api)與超過100k記錄保存到數據庫。我已經使用BULK INSERT和TinyTds寶石這裏
ActiveRecord::Base.establish_connection(adapter: 'sqlserver', host: "xxx", username: "xxx", password: "xxx", database: "xxx", azure: true, port: 1433, timeout: 5000)
class Report < ActiveRecord::Base
self.primary_key = 'id'
end
my_array = [] #count of 100000 records
Report.bulk_insert(:account_owner_id) do |worker|
my_array.drop(2).each do |arr|
worker.add account_owner_id: arr[0]
end
end
請問你是如何觸發這段代碼的?它來自控制器嗎?同樣的情況發生在你從腳本運行它嗎?是否有機會將模式和數據文件發佈到某處 - 或者至少是數據文件的一部分。 – Andy
我從腳本運行它。這是我運行的代碼。除此之外,我還有一個將數據填充到my_array的api。添加超時到活動記錄連接是否存在問題?當我使用cron運行代碼時,會發生這個問題。有兩個訪問數據庫的腳本,它們都有相同的代碼 –