2011-08-30 2 views
0

사용 : 심포니 1.4.13 (추진 ORM)최적화 질문 : 심포니 "라이브"페이지 만들기 (memcached를)

나는 트래픽에 대한 현재 바쁜 최적화를이고 나는 너무 많이 얻을 수있는 데이터베이스를 완화 할 같은 전화.

"라이브"페이지는 기사의 개요입니다. 5 초마다 새로운 기사를 확인하기 위해 아약스 전화가 걸립니다. 그것은 현재 잘 작동합니다. 하지만 나는 한 번에 100 명의 사용자가 같은 페이지에있을 때 100 콜이 아니라 5 초마다 하나의 콜 (cron job)을 원한다.

물론 5 초마다 XML 문서 (또는 비슷한 내용)를 생성하고로드/읽을 수있는 구식 방식을 사용할 수 있습니다.하지만 Memcached로도 할 수 있는지 궁금합니다. 나는 그것에 대해 아주 새롭기 때문에 어떤 충고도 환영받습니다. 개체를 저장하고 모든 사용자가 액세스 할 수 있습니까? 아니면 더 좋은 방법이 있습니까?

답변

0

두 단계로 캐시를 만들 수 있습니다. Doctrine에 대한 쿼리 캐시를 만들 수 있지만 각 요청에 대해 여전히 해당 캐시에 도달 할 수 있습니다.

Symfony에서 (보기) 캐시 시스템을 사용할 수도 있습니다.이 시스템에서는 APC와 memcached와 같이 다른 '매장'을 사용할 수 있습니다. 이러한 캐시 공급자는 원하는 방식으로 구성 할 수 있습니다. (그래서, 귀하의 경우 5 초로 설정하십시오).

Jobeet tutorial에서 Symfony 캐시 시스템에 대해 자세히 읽을 수 있습니다.

+0

감사합니다. anjser와 함께 작업을 호출하기 때문에 뷰 캐시를 사용할 것을 고려했습니다. 그 순간에 내가 그것을 선택하지 못하게 한 이유는 사용자가 캐시를 생성하는 것을 원하지 않았기 때문입니다. 나는 이것이 지금까지 최선의 선택이라고 생각한다. –

+0

당신이 할 수있는 일생은 예를 들어 15 분으로 설정됩니다. 그런 다음 매 5 분마다 실행되는 캐시 백엔드의 정보를 새로 고치는 cron 작업을 만듭니다. (어쩌면 같은 URL을 호출하기도하지만'ignore_cache' 같은 종류의 매개 변수를 사용합니다). –