Sobes.tech

Python

Wie sollte ein asynchroner TTL-Cache funktionieren, wenn er auf einen externen Redis-Cache zugreift, der langsam antworten kann?

30

Aufgabe: Schreiben Sie einen Decorator, der das Ergebnis einer Funktion für eine bestimmte Zeit (ttl) zwischenspeichert. TTL ist in Sekunden (int) festgelegt. 1) Beschreiben Sie das Grundschema dieses Codes mit allen möglichen Randfällen. 2) (optional) implementieren Sie in Code import time # Implementierung pass # print(f"Func in cache: {}") # print(f"Time is valid: {}") @ttl_cache(ttl=1) def multiplier(a, b, **kwargs): return a * b print(f'now={time.time()}') print(f'result={multiplier(5, 5, x=1)}; time={time.time()}') print(f'result={multiplier(5, 5, x=1)}; time={time.time()}') print(f'result={multiplier(2, 5, x=1)}; time={time.time()}') time.sleep(2) print(f'result={multiplier(5, 5, x=1)}; time={time.time()}')

29
/5