은 일 수 있지만 사소한 것은 아니지만 Rails는 기본 제공 기능을 제공하지 않습니다. 사실이 작업을 수행하려면 OS 레벨로 내려와야하며 둘 이상의 물리적 서버가있는 경우 훨씬 복잡해집니다.
먼저 세션에 연결을 저장할 수 없습니다. 사실 당신은 다음과 같은 여러 가지 이유로 세션에있는 루비 객체를 저장하지 않으 이에 국한되지 다음 경우 물건을 깰 수있는 문제가 정렬 화되고있는 객체의
- 일부 유형/비 정렬 화
- 배포 이 모델 변경 사람들은
- 당신이 쿠키 세션 저장소를 사용하는 경우에 당신은 일반적으로 그래서 4K
, 당신은 오직 문자열, 숫자 및 부울 같은 프리미티브를 넣어 원하는가 자신의 세션에서 연재 물건을 outdates 세션으로
지금까지 FTP 연결에 관한 한,이 문제는 직렬화/직렬화를 확실하게 할 수없는 범주로 분류됩니다. 이유는 루비 객체 일뿐만 아니라 원래 객체가 가비지 수집되는 즉시 닫힐 소켓을 가지고 있기 때문입니다.
따라서 FTP 연결을 영구적으로 유지하려면 컨트롤러 인스턴스가 요청 당이기 때문에 컨트롤러 인스턴스 변수에 저장할 수 없습니다. 컨트롤러 인스턴스 외부에서 인스턴스화를 시도 할 수는 있지만, 연결을 정리하는 데 매우 신중하지 않으면 메모리 누출 가능성이 있습니다. 게다가 둘 이상의 app 서버 인스턴스가있는 경우 사용자가 각 요청에 대해 동일한 앱 서버 인스턴스와 통신하도록 보장하는 방법을 찾거나 후크를 찾을 수 없습니다. 그래서 결국 Ruby 프로세스에서 세션을 열어 두는 것이 비 스타터입니다.
루비 프로세스가 말할 수있는 별도의 프로세스로 연결을 열어야합니다. 실제로 그렇게 할 수있는 표준 및 표준 방법이 없기 때문에 자신 만의 롤을 만들어야합니다. DRb을 살펴보고 필요한 기본 요소 중 일부를 제공 할 수 있습니다.
출처
2010-04-30 18:43:28
gtd
나는 다른 질문에 대답하고 나서 그것을 삭제했다. 나는 여기에 초에 게시 할 것이다. – gtd
죄송합니다. –