2016-07-29 76 views
0

比方說,我們有一個PostsController和一個Post模型有多個圖像。大型資源創建請求超時時會發生什麼情況?

這個圖像是在after_save回調中創建的。

現在我們有一個巨大的請求,帶有20個編碼圖像,當回調處於執行過程中時,這些圖像會超時。

現在是什麼狀態?

  • 該帖子是否存儲在數據庫中?

  • 哪裏有圖像創建?

  • 如果圖像是在before_save回調中創建的,它會改變什麼嗎?

+0

這些圖像究竟發生了什麼? –

回答

0

數據庫事務將在除after_commit以外的任何回調中回滾。在數據庫事務提交之前,它不會保存到磁盤上。

如果假設在超時之前處理了一半圖像,那麼將處理該圖像的一半。真的沒有辦法讓它回滾。

以下是available callbacks的鏈接及其運行順序。

最後,最好通過Active Job異步運行圖像處理,這樣你就不太可能遇到超時問題。

相關問題