Не пробовал раньше, но вы можете использовать многопоточность и установить таймаут для вызова функции для кэширования.В качестве примера, игнорируйте пример, приведенный в основном тексте по этой ссылке, но посмотрите на комментарий Джима Кэрролла:
http://code.activestate.com/recipes/534115-function-timeout/
Адаптировано для того, что вы можете использовать:
from threading import Timer
import thread, time, sys
def timeout():
thread.interrupt_main()
try:
Timer(0.5, timeout).start()
cache.get(stuff)
except:
print "Use a function to grab it from the database!"
У меня нет времени, чтобы проверить это прямо сейчас, но меня беспокоит вопрос о том, является ли сам Django потоком, и если да, прерывает ли основной поток то, что вы действительно хотите сделать?В любом случае, это потенциальная отправная точка.Я искал вариант конфигурации, который позволил бы это, и ничего не нашел.