Скажем, я настраиваю мемоизацию с помощью Joblib следующим образом. (используя решение, предоставленное здесь):
from tempfile import mkdtemp
cachedir = mkdtemp()
from joblib import Memory
memory = Memory(cachedir=cachedir, verbose=0)
@memory.cache
def run_my_query(my_query)
...
return df
И скажем, я определяю пару запросов, query_1
и query_2
, оба они выполняются долго.
Я понимаю, что с кодом как есть:
Второй вызов с любым запросом будет использовать мемоизированный вывод, т. е.:
run_my_query(query_1) run_my_query(query_1) # <- Uses cached output run_my_query(query_2) run_my_query(query_2) # <- Uses cached output
Я мог бы использовать
memory.clear()
для удаления всего каталога кеша
Но что, если я хочу повторно выполнить запоминание для только одного из запросов (например, query_2
) без принудительного удаления другого запроса?
.call
принуждает вычисление. вы можете проверить, обновляет ли он кеш. - person behzad.nouri   schedule 23.09.2014force
, но ничего не нашел..call
может быть ответом. Я проверю. - person Amelio Vazquez-Reina   schedule 23.09.2014persist_output
, так что я думаю, что это сработает! - person Amelio Vazquez-Reina   schedule 23.09.2014