2010-12-29 3 views
0
내가 루비 1.8.7를 사용하고

을에 루비 스레드 레일 및 2.3.8 레일 다음과 같이 내 문제는 다음과 같습니다 -공유 배열은 Nginx에

나는 결과를 얻을 수 AJAX를 통해 6 개 개의 웹 서비스를 호출 할 필요가

과의 모든 결과의 끝은 하나의 전역 배열로 채워집니다. 이러한 웹 서비스의 결과는 대개 임의의 시간에 반환됩니다 (이러한 웹 서비스는 일반적으로 6-15 초 내에 결과를 반환합니다).

나는 생성 된 결과를 저장하기 위해 @@ cars라고하는 하나의 전역 배열을 사용하고 있습니다. 아약스 호출 중 하나가 처리를 마칠 때마다 @@ 자동차가 0이되는 것을 찾습니다.

이것은 mongrel을 사용하는 개발 컴퓨터에서 로컬로 작동하지만 nginx에서는 문제가 발생합니다.

의견이 있으십니까?

답변

1

이것은 실제로 전역 변수에 대한 것이 아니며이 기술을 사용할 때 안정적으로 작동하지 않는다는 사실에 놀라지 않습니다. 데이터를 다른 위치에 두는 것을 고려해야합니다 (일반 데이터베이스 또는 간단한 배열 저장에 적합한 redis와 같은). 그렇게하면 데이터가 다른 스레드와 관련성이 떨어집니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 필자의 경우 웹 서비스를 쿼리하여 필요한 결과를 얻고 데이터를 통해 추출한 후 사용자가 사용할 수 있도록해야합니다. 몇 시간 만에 변경/유효성 변경으로 데이터를 저장할 필요가 없습니다. 이 nginx 및 루비 레일 문제가 보인다. nginx처럼 레일 쓰레드 안전하지 않은 것 같아요.이 문제를 해결할만한 방법이 없나요? –