Плохое решение, действительное только в однопоточной программе, может заключаться в мониторинге cache_info
функции, чтобы увидеть, меняется ли статистика:
hits = f.cache_info().hits
result = f(some_arg)
if f.cache_info().hits > hits:
# this result was retrieved from cache
...
Лучшим решением может быть больше думать о том, что вы считаете устаревшим ... все значения в конечном итоге поступили из базы данных ... что делает то, что вы запрашивали в прошлом вызове функции, устаревшим. ... время, прошедшее с момента последнего запроса, возвращенная отметка о версии в строках и т. д.