2012-04-30 24 views
0

我構建了一個分類器API,以作爲獨立服務插入到我們正在發展的平臺中。基本上我想發送一段文本並運行一些專有的魔法,並用json迴應。如何在Rails 3之前創建對象API設計的控制器調用

簡單,對嗎?

問題是我想在文本上運行幾個方法,這些方法需要將大的哈希加載到內存中以進行操作。現在,我每次發送新文本以進行操作時,都必須初始化這些對象。

什麼是建立一個對象的全局實例的最佳方式,我可以在控制器內訪問,而無需爲每次調用重新創建它?

這應該是在初始化或有一種方法將其綁定到特定的控制器?

回答

0

您可以使用全局變量,但嚴重不建議 - 請務必閱讀Simone Carletti的this answer。我應該補充 - 他指的是使用更強大的緩存解決方案,這是我的建議。

+0

羅布,這很醜陋,但使用像你建議的(排序)讓我們到MVP的全球。當我們重構穩健性和速度時,我們將利用Simone和Ben的建議。 – jmfeland

+0

完全同意醜陋 - 正如我所說的,我的首要目標是緩存。 –

0

您在這裏有幾個選項。

答:您可以在rails啓動時將哈希加載到常量中,使它們可供整個應用程序使用,從而僅加載一次。您可以通過在初始化程序中添加常量來完成此操作。

B.將哈希加載到memcached中並重寫您的邏輯以查詢memcached而不是哈希。這會稍微複雜一點,但如果我這樣做,那將是我的首選方法。我將有一個rake任務將文件加載到memcached中,然後在實例或導軌之間共享memcached的實例。這將減少所需的內存開銷量。只要確保你將過期設置爲零。

+0

本,謝謝!我認爲這絕對是我長期的解決方案。 – jmfeland

+0

如果這有幫助,你能接受答案嗎? –

相關問題