0
我有一個應用程序需要產生多個線程,並在每個線程更新數據庫。當我只產卵1個線程,並做更新的系列,一切都很好,但是當試圖多線程我在日誌中出現錯誤:Rails嘗試多線程對象更新的SQLite3數據庫鎖
的SQLite3 ::的SQLException:SQL邏輯錯誤或丟失的數據庫:ROLLBACK TRANSACTION 和 SQLite3 :: BusyException:數據庫被鎖定
我假設鎖定是因爲第一個錯誤。
這是導致問題的代碼:
all_threads = []
servers.each do |server|
all_threads << Thread.new(server) do |svr|
serverCurrent = Server.find(svr.id)
serverCurrent.state = 3
serverCurrent.save
end
end
all_threads.each(&:join)
如果我遍歷所有的線程內服務器(因此只創建一個線程,一切都很好)。我正在使用的數據庫是SQLite3
剛剛更新與mysql2寶石MySQL的,似乎已經解決了這一問題。無法讓SQLite3工作。 –