我正在構建一個rails 3.2應用程序,它允許用戶從CSV文件導入聯繫人。如果CSV文件中的任何聯繫人行包含驗證錯誤,則不會導入任何聯繫人,並且會以CSV文件向用戶顯示錯誤。例如,如果聯繫人CSV包含20行,並且4行和15行存在錯誤,則不會導入任何聯繫人,並且CSV的第4行和第15行都會顯示錯誤。從CSV導入大量的聯繫人與Rails 3.2
我已經在時間和「構建」讀取每一行中的陣列記錄使用「Contact.new」完成此功能。如果錯誤不存在,我通過迭代陣列來保存所有聯繫人,否則顯示錯誤。
如果行數增加到40,那麼大約需要20分鐘才能導入錯誤的聯繫人。有沒有辦法提高其性能?
更新: 我有這個應用程序部署在Heroku與獨角獸。如果我導入這個包含40個聯繫人的CSV,則應用程序在30秒後崩潰,但所有聯繫人都已導入。以下是導致應用程序崩潰的日誌:
2012-12-26T15:40:28+00:00 app[web.1]: E, [2012-12-26T15:40:27.233802 #2] ERROR -- : worker=0 PID:54 timeout (31s > 30s), killing
2012-12-26T15:40:29+00:00 app[web.1]: E, [2012-12-26T15:40:29.724725 #2] ERROR -- : reaped #<Process::Status: pid 54 SIGKILL (signal 9)> worker=0
2012-12-26T15:40:32+00:00 app[web.1]: Disconnected from ActiveRecord
2012-12-26T15:40:33+00:00 app[web.1]: Disconnected from Redis
對此有何看法?
開發模式需要20分鐘。在heroku大約需要。 30-35sec。是的,隨着保存聯繫人,它保存了他們的地址,電子郵件和電話號碼,都是不同的模式。 我會盡量保存後臺作業中的所有細節。謝謝 – varunvlalan
它超時與Unicorn有什麼關係? – varunvlalan
即使在開發模式下也不需要20分鐘。即使與相關的模型,似乎超過每個模型的第二個仍然很慢...至於獨角獸..不知道。這是一個英雄的事情。如果您需要更多詳細信息,請在他們的幫助指南/支持部分中記錄它 –