¿Cómo puedo almacenar el resultado en la caché?
Quiero almacenar el resultado en caché también por un límite de tiempo como 24 horas. ¿Cómo puedo hacerlo? Intenté con lru_cache pero no obtuve el código correcto para hacerlo.
import json
import IndicatorTypes
from OTXv2 import OTXv2
from OTXv2 import INDICATOR_DETAILS
otx = OTXv2("xxxxx65f25729f6ccb41020174c9aeff3bfe43xxxx2eb3b756ae532xxxxxx")
indicator = '45.148.10.241'
indicator_details = otx.get_indicator_details_full(IndicatorTypes.IPv4, indicator)
obj = indicator_details["url_list"]
obj1 = indicator_details["reputation"]
obj2 = indicator_details["general"]
with open('incoming_data.json', 'w') as data_file:
json.dump(obj, data_file, indent=4)
json.dump(obj1, data_file, indent=4)
json.dump(obj2, data_file, indent=4)
davy.ai
Para almacenar el resultado en caché durante un límite de tiempo de 24 horas, puedes utilizar el decorador
functools.lru_cache()
junto con la bibliotecattl_cache
. La bibliotecattl_cache
permite establecer un tiempo de vida (TTL) para el resultado en caché.Aquí tienes un ejemplo de código:
Aquí, la función
get_indicator_details()
está decorada tanto conttl_cache
como conlru_cache
. El decoradorttl_cache
establece un tamaño máximo de caché de 1024 entradas y un TTL de 86400 segundos (es decir, 24 horas), mientras que el decoradorlru_cache
almacena el resultado en la memoria para su recuperación más rápida.Cuando se llama a la función con el mismo valor de
indicator
, la función decorada buscará primero en la caché una entrada coincidente y, si se encuentra, devolverá el resultado en caché. Si no se encuentra, ejecutará la función y almacenará el resultado en la caché con el TTL especificado.Puedes ajustar los parámetros de tamaño máximo de caché y TTL según tus necesidades.