Кэширование на основе файлов с истечением срока действия в python

#python #caching

#python #кэширование

Вопрос:

Для генерации статистики я выполняю несколько запросов 100 XMLRPC к стороннему API.

Поскольку я хочу, чтобы статистика вычислялась быстро, чтобы иметь возможность играть с ней, я хочу кэшировать ответы из API.

Выдержка из HTTP-заголовков API:

 Content-Type: application/xml; charset=utf-8
Connection: keep-alive
ETag: "c539d317b07c640c123e287304d2c568"
P3P: CP="NOI DSP COR NID ADMa OPTa OUR NOR"
Content-Length: 4089
Cache-Control: private, max-age=0, must-revalidate
  

Мне нужно:

  • решение для python 2.6
  • поскольку ответы API довольно большие, кэш должен быть записан на диск (без кэширования в памяти)
  • Я хочу, чтобы срок действия ответов api истек, например, через 1 день
  • старые ответы на диске должны быть удалены, чтобы не иметь бесконечно растущего кэша

Я близок к тому, чтобы написать что-то свое, поскольку это не кажется слишком сложным, но я подумал, что это может быть довольно распространенным вариантом использования, так что, возможно, что-то уже существует.

Ответ №1:

Что ж, поскольку никто не придумал хорошего существующего модуля, я написал его сам.

Не особенно красиво, но, я думаю, оно выполняет свою работу. Обратная связь очень приветствуется

http://pastie.org/2842063