3
我的Rails 3.1應用程序使用引擎,我想知道是否對此引擎的訪問是線程安全的。Rails引擎線程安全 - ActiveResource
我已經/lib/mymodule.rb發動機,它看起來是這樣的:
module MyModule
def self.my_method()
begin
data = WebResource.find(:all) # Where WebResource < ActiveResource::Base
rescue
data = nil
end
return data
end
end
然後在我的意見/控制器,我稱這種方法是這樣的:
MyModule::WebResource.headers[:some_id] = cookies[:some_id]
MyModule::my_method()
在我的主應用程序中,我有線程安全!配置選項集。我知道用threadsafe!啓用時,每個控制器都存在於它自己的線程中,用於每個請求。
但是,此模塊線程安全嗎?我懷疑對於所有請求只有這個模塊的一個副本,所以它不是本質上是線程安全的,並且需要使用類似Mutex的手動同步。具體來說,我有代碼設置ActiveResource類WebResource
之外的HTTP請求標題。這是否會導致線程問題?
謝謝@Jesse。我已更新我的問題以提供更多詳細信息。雖然我沒有觸及任何類變量/全局狀態,但我仍然不確定這是否會起作用。我在我的控制器中設置引擎之外的HTTP頭信息。你知道每個Rails請求會得到它自己的Engine/WebResource.headers實例嗎? – Oleksi
在Ruby/Rails中如何實現MyModule :: WebResource.headers?它在課堂上嗎? – Oleksi
什麼是WebResource?是不是你定義的activerecord類? –