2013-02-07 62 views
0

我需要一些幫助,裏面...提交一個更新,交易

這是一種Rails的3.0.15僞代碼解釋我的問題:

progress_bar = ProgressBar.create 

record = Record.new 
10000.times.do 
    record.bodies.build 
    progress_bar.inc 
end 
record.save 

代碼創建了10000個機構的記錄,但它們被包裹在一個交易中,所以他們立即承諾,這是好的。

ProgressBar.create一個表中的記錄,公司應該增加一個計數器,因此一個js進度條可以從表中讀取當前計數並更新進度,但由inc觸發的ProgressBar更新會被捕獲記錄交易,並承諾與10000條記錄......沒用!

關於如何在事務內強制更新而不提交整個事務的想法?

或者我可以使用什麼樣的替代存儲來保存進度欄當前位置?

問候

回答

0

Realtional數據庫通常無法做到寫,而在事務內,所以你的選擇是,以某種方式發送了消息,所以另一個數據庫連接將處理進度條,或(這是一個極大的方便,更好的,imo)將你的進度條數據存儲到其他類似Redis或Memcached的其他數據中;它們是爲這種用法而設計的。

+0

已解決。您的解決方案讓我以正確的方式。我去PStore創建一個外部存儲庫。 – SkyLord73

+0

儘快我會發布我的新寶石來解決軌道上的狀態欄問題...敬請期待! – SkyLord73