2014-04-11 1 views
1

Django의 캐시 기능은 지정된 시간 간격 (예 : 1 분, 1 시간 등)이 지나면 만료된다는 것을 알고 있지만 매일 바뀌는 내용 (예 : '오늘의 메시지')이 있습니다. 이상적으로이 캐시는 24 시간 동안 캐시되지만, 시간 제한을 24 시간으로 설정하면 캐시가 자정에 만료된다는 보장은 없습니다. 이 상황을 처리하는 가장 좋은 방법은 무엇입니까?특정 시간 (예 : 자정)에 장고 템플릿 캐시를 지우려면 어떻게해야합니까?

+0

가 나는 그것이 cache_ 동적 페이지를 _browser하는 것이 좋습니다 생각하지 않습니다 (당신이 locmem를 사용하는 경우 그리고 O // 당신은 잘못하고 있어요). 전체 페이지가 아닌 정적 파일 만 캐시해야합니다. – xyres

답변

1

두 가지 쉬운 옵션이 마음에 듭니다. 둘 다 (자정) (자정)에 실행해야하는 예약 된 작업이 관련되어 있습니다.

1) 앞서 나가기 : 24 시간 만료와 함께 자정에 '오늘의 메시지'메시지를 요구하는 코드 (예 : 맞춤 관리 명령)를 예약하십시오.

핵을 가지 마세요, 그냥 일정을 다음 두 개의 결합, 자정

에서 캐시 제거를 예약하거나 : 핵 이동)

2 (이 관련 캐시 키가 아직 설정되지 않은 가정) 자정에 MOTD 키 (예 : cache.delete ('motd_key')) 만 삭제 한 다음 새로운 캐시를 호출하십시오.

또는 캐시 백엔드로 Redis를 사용하는 경우 MOTD를 캐시 한 다음 EXPIREAT 호출로 캐시 된 MOTD 항목이 23:59:59에 만료되도록 설정해야합니다. redis.py를 사용하면 Pythonic 방식으로 처리 할 수 ​​있습니다.

Memcached를 백엔드로 사용하는 경우 해당 제어 수준을 얻지 못합니다.

:)

+0

다음은 몇 가지 훌륭한 옵션입니다 (예 : 예약 된 작업 또는 Redis). 나는 이전에 레디 스에 대해 들어 본 적이 없었고 그것을 확인합니다. 감사! – Brad

관련 문제