我要存儲在JRuby中物體的時間很短。對象使用特效,所以我似乎有麻煩存儲到數據庫。如果任何人對如何堅持jruby物體持續1-5分鐘有很好的想法,那就太好了。JRuby的持久性問題
這些對象是相當大的,特別是,當機立斷瀏覽器對象。
現在,我已經創建了一個模型,在JRuby中,像這樣:
class Persist
@@persistHash ||= Hash.new
def self.storeItem(id, item)
@@persistHash[id.to_s] = item
end
def self.getItem(id)
return @@persistHash[id.to_s]
end
end
我已經啁啾的應用程序,並部署它GlassFish v2中。
我運行程序,它一會兒工作正常。但一天之後,如果我叫「商店」(10-20秒)我回到零右後「得到」。
我無法找到日誌中的任何錯誤。
編輯:我還發現,該項目確實插入到哈希表(插入在哈希表沒用完的內存):
前24小時:
Persist.storeItem(),其次通過Persist.getItem()工作正常。
一個HTTP調用的存儲。然後另一個http調用get返回對象。
24小時後:
Persist.storeItem(),其次是Persist.getItem()工作正常。
一個HTTP調用的存儲。然後另一個http調用get返回nil。
我不知道如果你堅持的實例(S)是在被在離開該範圍內摧毀了當地的範圍。你看過嗎? – 2011-03-23 23:00:35
我不知道如何正確實例。我假設商店和獲取是靜態類方法,我只是從不同的模型或控制器調用Persist.storeItem。即使Persist課程一直在重新加載,我不明白爲什麼它會在一天內正常工作。 – Andy 2011-03-24 02:51:45
你說得對 - 我沒有注意到他們是類的方法,即使我注意到了@@。我的下一個想法是,它一直在重新加載,但考慮到它可以工作一天,我感到困惑。您是否在23:59和24:01小時測試過它(例如,您確定它是在24小時標記處,或者它可能在0:00重置?) – 2011-03-24 12:06:56