Google appengine кеширует внешние запросы? - PullRequest
3 голосов
/ 13 мая 2010

У меня есть очень простое приложение, работающее в appengine, которое запрашивает веб-страницу каждые пять минут и анализирует определенный фрагмент данных.

Все работает нормально, за исключением того, что ответ, полученный от внешнего запроса (с использованием urllib2), не отражает последние изменения на странице. Иногда требуется несколько минут, чтобы получить последнюю версию, иногда более часа.

Есть ли прозрачный слой кэширования, который appengine создает? Или я что-то здесь упускаю? Я просмотрел заголовки кэширования запрашиваемой страницы, и заголовки Expires, LastModified или ETags не отправлены.

Обновление: Иногда он получает новую версию страницы для ряда запросов, а затем случайным образом получает старую устаревшую версию.

1 Ответ

8 голосов
/ 13 мая 2010

Похоже, что это проблема, о которой команда App Engine знает . Предложенный обходной путь должен установить заголовок Cache-Control с максимальным возрастом в секундах:

result = urlfetch.fetch(url, headers = {'Cache-Control' : 'max-age=240'})

, надеюсь, будет работать для вас.

...