2012-10-09 4 views
5

여러 클라이언트 (브라우저, 다른 응용 프로그램, 유닉스 쉘 스크립트, 파이썬 스크립트 등)에서 동일한 자원을 JSON으로 표현하기 위해 비교적 어려운 폴링 사이트가 있습니다.openrasta의 서버 사이드 캐싱

요청을 처리하고 리소스를 JSON으로 직렬화하는 CPU 히트를 피하기 위해 구성 가능한 시간 동안 일부 리소스가 서버 내에 캐시되도록 캐싱을 추가하고 싶습니다. 물론 처리기 내에서 캐시 할 수는 있지만 모든 요청에 ​​대해 일련 번호가 적용되며 많은 처리기도 수정해야합니다.

나는 openrasta-caching 모듈을 보았지만 이것이 브라우저 캐시를 제어하기위한 것이라고 생각하십니까?
그래서 코덱이 생성 한 후에 리소스의 렌더링 된 표현을 캐시하기 위해 openrasta를 얻을 수있는 방법에 대한 제안이 있습니까?

감사

+0

리소스에 대한 거의 모든 업데이트가 처리기를 통해 들어오고 있기 때문에 프로그래밍 방식으로 캐시를 무효화 할 수 있다는 점을 덧붙여 야합니다. –

+0

사용중인 .net 버전은 무엇입니까? – JPReddy

+0

나는 .net 4.0과 함께 일하고있다. 왜? –

답변

1

openrasta 캐싱을 사용하면 ServerCaching 속성을 사용하여 asp.net 서버 측 캐시에 매핑 할 수있는 API와 함께, 서버 측 캐싱에 대한 예비 지원을 가지고있다. 그것은 완전하지 않다고 말했고, 그 문제에 대한 공개적인 캐싱도 아닙니다. asp.net 캐싱 인프라가 현재 지원되지 않는다는 것을 지원하기를 원하는 모든 시나리오를 완벽하게 지원하는 좋은 v1로 만들기 위해 며칠이 소요됩니다. (주로 OpenRasta 작업에서 캐싱을합니다. 정확하게 asp.net 토지에 존재하는 .net 중심의 객체와 HTTP 중개자와 매우 유사합니다. 클라이언트가 서버에 명령을 다시 실행하도록 허용하려는 시간에 대한 서버 캐시의 클라이언트 제어를 포함합니다. 현재 캐싱에 대한 클라이언트 프로젝트가 없으므로 해당 플러그인에 대한 추가 작업을 정당화하는 것은 어렵습니다. 그래서 지금 당장은 아무 것도 코딩하지 않을 것입니다. 4 일 동안 무료로 사용할 수있게되었으므로, DM에서 0.3 일정에 맞춰서 openrasta-caching을 원한다면 4 일간의 작업에 적합 할 것입니다.

IOperationInterceptor를 사용하여 간단한 것을 구현하고이를 사용하여 asp.net 파이프 라인을 연결하거나보다 웹에 익숙해지며 squid를 사용하여 캐싱 프로세스를 구현하고 정확한 http 캐싱을 생성하기 위해 openrasta-caching에 의존 할 수 있습니다 명령.

귀하의 문제로 인해 비용이 json 인 경우 서버 캐싱이 필요하지 않을 수도 있습니다. 마지막으로 수정 한 또는 Etag를 핸들러가 반환하는 것으로 매핑하면 클라이언트가 조건부 요청을 수행하면 (필요한 경우) 적절하게 304을 생성하고 json 렌더링을 모두 우회합니다.

데이터를 검색하지 않고 304를 반환하는 마지막 수정/etag에서 첫 번째 쿼리를 수행하여 API를 더욱 최적화 할 수있는 제안 된 API가 있습니다.