2012-01-16 86 views
1

就像在基本的hello world玩!應用程序,你可以這樣做:Scala/Play:將數據保存在單例中是否安全?

object Application extends Controller { 
    var ak = 0 
    import views.Application._ 

    def index = { 
     ak = ak + 1 
     html.index("Your Scala application is ready!" + ak) 
    } 

} 

而且每次刷新頁面,該數目的增量。有誰知道這種行爲是我可以信賴的,還是我應該完全避免的?似乎我可以用它來做一些簡單的計算的本地緩存,同時避免將數據序列化/傳輸到memcached

+0

我覺得從不同的線程遞增變量這樣的時候還可以存在競爭條件。 – Sonson123 2015-05-02 18:03:36

回答

2

由於Play!被設計成一個無狀態 webframework我不會依賴Controller生命週期來處理這種狀態。

容器極有可能會停止並重新啓動控制器,特別是在雲基礎架構上。

你應該認真研究一下替代方案(就像你提到的memcached一樣)。

檢查部分「會議和Flash的作用域」頁(顯示緩存一些設施):

http://www.playframework.org/documentation/1.1.1/controllers

相關問題