2012-11-10 73 views
0

我有一個Rails視圖執行了很多非常昂貴的嵌套查詢。我正在努力將重任放到延遲工作中,吐出一個緩存文件,並通過ajax輪詢所述緩存。Rails:發送延遲作業的視圖?

我這樣做的事情相當多,但通常我緩存查詢(而不是整個視圖)。在這種情況下,需要很長時間才能寫出SQL來包含所需的所有內容,而且我寧願將整個部分模板渲染到delayed_job中。

...這就是樂趣開始的地方。我得到了很多的錯誤,特別是與form_helpers的,設計驗證,等等等等等等,總之,沒有任何人有任何建議之一:

  • 一個簡單的方法來呈現局部視圖(或返回渲染的行動)在延遲的工作?
  • 一個簡單的方法來實現上述,沒有寫出什麼是一個helluva複雜SQL/ActiveRecord查詢?

任何想法讚賞 - 非常感謝。

回答

2

好吧,以相對簡單的方式渲染視圖本身,只需看看this tutorial

不過,我會學習的代碼和安裝要能夠回答以下問題:

  1. 是否有可能對系統進行優化,以避免延遲呈現呢?檢查你的數據庫索引,玩查詢和數據庫設置可能會使已經看不到的真實情況變成現實。

  2. 是否可以在延遲作業中收集數據,將其序列化爲json並在瀏覽器端執行演示?通過這樣做,如果您發現瓶頸並決定將處理重新轉換回webapp,那麼您將自行退​​出。

  3. 可能預計算(使用簡單結構表)有幫助嗎?您可以隨時在後臺填充這些表格,甚至可以使用觸發器,並讓您的應用程序以直線方式工作。

希望上述任何幫助:)