0
比方說,我們有一個PostsController
和一個Post
模型有多個圖像。大型資源創建請求超時時會發生什麼情況?
這個圖像是在after_save
回調中創建的。
現在我們有一個巨大的請求,帶有20個編碼圖像,當回調處於執行過程中時,這些圖像會超時。
現在是什麼狀態?
該帖子是否存儲在數據庫中?
哪裏有圖像創建?
如果圖像是在
before_save
回調中創建的,它會改變什麼嗎?
比方說,我們有一個PostsController
和一個Post
模型有多個圖像。大型資源創建請求超時時會發生什麼情況?
這個圖像是在after_save
回調中創建的。
現在我們有一個巨大的請求,帶有20個編碼圖像,當回調處於執行過程中時,這些圖像會超時。
現在是什麼狀態?
該帖子是否存儲在數據庫中?
哪裏有圖像創建?
如果圖像是在before_save
回調中創建的,它會改變什麼嗎?
數據庫事務將在除after_commit
以外的任何回調中回滾。在數據庫事務提交之前,它不會保存到磁盤上。
如果假設在超時之前處理了一半圖像,那麼將處理該圖像的一半。真的沒有辦法讓它回滾。
以下是available callbacks的鏈接及其運行順序。
最後,最好通過Active Job異步運行圖像處理,這樣你就不太可能遇到超時問題。
這些圖像究竟發生了什麼? –