簡體   English   中英

在Heroku上的Rails中一次顯示大量記錄

[英]Displaying very large amount of records at once in Rails on Heroku

我有超過6000個具有多個關聯的用戶行,每行顯示超過15列。

每當我調用此動作進行檢索時,Heroku似乎會在一段時間后拒絕處理並停止。

我嘗試過find_each但這似乎沒有用,所以我用RedisToGo設置了Resque

它似乎與其他查詢一起使用,這對於創建和更新大量記錄特別有用,但我如何有效地將其顯示給用戶?

我是否只是使用像Resque Status這樣的東西來顯示currently processing的頁面上的用戶的狀態然后在它准備好時顯示?

現實世界的應用程序如何處理這類問題?

預先加載所有數據的效率低得多

無論服務器資源的成本如何,這都是糟糕的系統設計。 最有效和更好的方法是僅加載您需要顯示的數據:

想象一下,如果Google每次都為您的查詢加載了所有結果。 它不僅會降低您的體驗,還會使服務器超負荷,使其無法使用


分頁

使用分頁解決方案會更好:

這兩種方法都以類似的方式工作 - 通過在查詢中應用.per() .page().per()方法,gems只返回該頁面的數據(如Google)

如果您想提供ajax分頁解決方案 ,您將能夠創建所有可用數據的感覺,而無需大量開銷:

在此輸入圖像描述

我認為heroku的超時時間為30秒。 可能你的要求不止於此。

你應該留意n + 1個查詢。 您使用聯接或包含使用較少的查詢?

同樣在這種情況下,通常使用分頁。 如果您不想擁有多個頁面,只需使用ajax加載頁面即可。 也許你需要一個無盡的卷軸。 這樣你就可以避免長期請求,這實際上是一種不好的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM