У меня есть представление Django, которое получает часть своих данных с внешнего веб-сайта, который я анализирую с помощью urllib2 / BeautifulSoup.
Эта операция довольно дорогая, поэтому я кеширую ее с помощью низкоуровневого API кеширования в течение ~ 5 минут. Однако каждый пользователь, который обращается к сайту после истечения срока действия кэшированных данных, получит значительную задержку в несколько секунд, пока я перехожу на внешний сайт для анализа новых данных.
Есть ли способ загрузить новые данные так, чтобы ни один пользователь никогда не получал такую задержку? Или это неизбежно?
Обратите внимание, что я на сервере общего хостинга, поэтому помните об этом при ответах.
РЕДАКТИРОВАТЬ: спасибо за помощь до сих пор. Тем не менее, я до сих пор не уверен в том, как мне добиться этого с помощью сценария Python, который я буду вызывать. Базовый тест, который я сделал, показывает, что кеш django не является глобальным. То есть, если я вызываю его из внешнего скрипта, он не видит данные кэша, происходящие в платформе. Предложения?
Еще одно РЕДАКТИРОВАНИЕ: , если подумать, это, вероятно, потому, что я все еще использую кэш локальной памяти. Я подозреваю, что если я переместу кеш в memcached, DB, что угодно, это будет решено.