2
나는 엔진 내부에서 ActiveResource 객체를 호출하고 있으며 쓰레드를 안전한 방법으로 설정해야한다.레일즈 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
을 :
WebResource.headers[:some_id] = cookies[:some_id]
MyModule::my_method()
this question을 묻고 약간의 독서를 한 후, 클래스 레벨에서 헤더를 설정했기 때문에 스레드 세이프가 아닌 것처럼 보입니다.
이 헤더를 스레드로부터 안전하게 보호하기위한 가장 좋은 방법은 무엇입니까?
ActiveResource는 기본적으로이 작업을 수행합니다. 헤더, 사이트, 프록시, 기본 인증 및 연결 자체를 스레드 로컬 변수에 저장하여 모든 스레드로부터 안전하게 만듭니다. https://github.com/rails/activeresource/commit/538588ddba9ffc9bf356790e9186dc7e6adad12f – mltsy