我有一個活動流,顯示用戶的活動,想象一個用戶更新他的頭像,然後1000人喜歡這個活動,結果是1活動,顯示用戶更新他的頭像,以及1000這樣的其他活動:person_1 likes photo of user x, person_2 likes photo of user x ..... person_1000 likes photo of user x
我應該移動在後臺進程中銷燬大量記錄嗎?
如果用戶再次更新其頭像,第一個頭像將被新頭像取代,所有1000個「喜歡」活動應該被銷燬,因爲第一個頭像不再存在,所以我有一個叫做update_avatar的方法:
def update_avatar
if @user.update(avatar_param)
# ---------- destroy old activities -----------------
# destroy the 1000 likes
# destroy the initial activity : user added a new avatar
# --------------------------------------------------------
# create new activity for the new avatar
....
end
end
這裏當用戶更新他的頭像時,我銷燬了所有與舊頭像相關的舊活動,如果t他的這些活動數量很高(在這個例子中是1000,可以更多),我認爲這需要一些時間來摧毀所有這些活動!我應該在後臺進程中運行代碼的一部分「銷燬舊活動」嗎?
感謝您的幫助
嗨@RichardJordan,謝謝你的回答,你的意思是說我的數據庫活動也是爲了性能而批量生產的? – medBo
我的意思是發送一條指令刪除所有的數據,而不是迭代一個對象數組,每次調用一次刪除,導致數據庫多次往返。 –
是的,我使用的地方+ destroy_all但我認爲這也應該在後臺進程中運行我是正確的? – medBo