2014-07-24 14 views
8

Raylardan gelen tekli karışımını kullanarak ray uygulaması kapsamında tek bir sınıf oluşturabilirim. Ama merak ediyordum Özel bir talep kapsamında bunu yaratmanın bir yolu var mı? Basitçe erişmek için RequestSingleton.instance kullanmak başka bir yerdeTekli raylar içinde bir talep kapsamında

def index 
    RequestSingleton.instance.do_some_setup 

    # ... 

    RequestSingleton.clear 
end 

... ve:

class RequestSingleton 
    def self.instance 
    Thread.current['request-singleton'] ||= RequestSingleton.new 
    end 

    def self.clear 
    Thread.current['request-singleton'] = nil 
    end 
end 

Kullanımı: Bir isteğin bir iş parçacığı ilgili olduğundan

cevap

7

, sen Thread local mağaza kullanabilirsiniz.

Yerel iş parçacığı olduğundan, senkronizasyon sorunu yoktur.